Skip to content

Conversation

@aarmoa
Copy link
Contributor

@aarmoa aarmoa commented Jun 23, 2025

  • Updated all messages to reflect the changes included in the chain version 1.16, and the Indexer for that chain version

  • Added documentation for erc20 modules endpoints

  • Added documentation for evm modules endpoints

  • Updated all exchange module examples to query the exchange v2 endpoints and send exchange v2 messages

  • Python SDK v1.11.0

  • Go SDK v1.58.0

  • Added automation to generate errors documentation

  • Added automation to generate the proto types and messages description from the official repos

Summary by CodeRabbit

  • New Features

    • Added comprehensive documentation and example code for new ERC20 and EVM modules, including API references, queries, transactions, and usage examples in Python and Go.
    • Introduced automated workflows and scripts for extracting and generating error documentation and proto JSON files from multiple repositories, enabling structured and up-to-date documentation.
    • Expanded error code documentation with detailed, module-specific error catalogs for all major modules, now presented in auto-generated tables.
  • Improvements

    • Updated all example code snippets across modules to use the latest SDK clients (Python v2 and Go V2), improved output formatting, and modernized transaction broadcasting with new utilities.
    • Refreshed JSON schema tables throughout the documentation to reflect current Cosmos SDK types, naming conventions, and enhanced descriptions, particularly for transaction responses and event types.
    • Clarified documentation regarding the differences between client versions and updated instructions for market and token data retrieval.
    • Enhanced documentation presentation by replacing manual tables with embedded JSON-to-HTML schema tables for consistent and updated parameter descriptions.
    • Updated example source references from remote GitHub URLs to local relative paths for faster access and consistency.
  • Bug Fixes

    • Corrected example code imports, output formatting, and variable naming across multiple documentation pages for consistency and accuracy.
  • Chores

    • Removed deprecated or redundant JSON schema files, tables, and outdated documentation sections to streamline and modernize the documentation set.
    • Added a new changelog entry summarizing major updates and releases.

aarmoa added 2 commits June 2, 2025 22:28
…gnerate the JSON definitions for the proto types tables
… from the proto files on the original repositories
@coderabbitai
Copy link

coderabbitai bot commented Jun 23, 2025

Walkthrough

This update introduces extensive improvements to documentation automation, error code coverage, and example code modernization. It adds new scripts and Makefile targets for extracting and generating documentation artifacts from multiple repositories, replaces static error tables with comprehensive auto-generated module-based error tables, and updates all Python and Go code examples to use the latest SDK client versions. New documentation for the ERC20 and EVM modules is included, and JSON schema tables are expanded and standardized to reflect current Cosmos SDK and Injective structures.

Changes

File(s) / Path(s) Change Summary
Makefile, scripts/extract_errors.sh, scripts/generate_errors_md.sh, scripts/generate_proto_json_files.sh Added/expanded Makefile and new scripts for automated repo cloning, error extraction, proto JSON generation, and documentation updates.
source/includes/_errors.md Replaced static error table with auto-generated, module-based error tables sourced from JSON.
source/json_tables/chain/errors/.json, source/json_tables/chain/errors/ Added comprehensive error code JSON files for all major modules (auction, erc20, exchange, insurance, ocr, oracle, peggy, permissions, tokenfactory, wasmx).
source/json_tables/cosmos/, source/json_tables/cosmos/auth/, source/json_tables/cosmos/bank/* Added new JSON schema files for Cosmos SDK types, accounts, bank, and transaction-related entities.
source/json_tables/chain/exchange/*.json, source/json_tables/chain/exchange/marketStatus.json Updated descriptions for clarity (human readable format); deleted deprecated/duplicated schema files.
source/json_tables/chain/abciMessageLog.json, source/json_tables/chain/attribute.json, source/json_tables/chain/event.json, source/json_tables/chain/eventAttribute.json, source/json_tables/chain/marketStatus.json, source/json_tables/chain/stringEvent.json, source/json_tables/chain/tx/broadcastTxResponse.json, source/json_tables/chain/txResponse.json Deleted deprecated or replaced JSON schema files for logs, events, attributes, and responses.
source/includes/_accountsrpc.md, source/includes/_auction.md, source/includes/_auctionsrpc.md, source/includes/_authz.md, source/includes/_bank.md, source/includes/_broadcaster.md, source/includes/_chainstream.md, source/includes/_clients.md, source/includes/_derivativesrpc.md, source/includes/_explorerrpc.md, source/includes/_ibccorechannel.md, source/includes/_ibccoreclient.md, source/includes/_ibccoreconnection.md, source/includes/_ibctransfer.md, source/includes/_insurance.md, source/includes/_insurancerpc.md, source/includes/_metarpc.md, source/includes/_oracle.md, source/includes/_oraclerpc.md, source/includes/_overview.md, source/includes/_permissions.md, source/includes/_portfoliorpc.md, source/includes/_spotrpc.md, source/includes/_tendermint.md, source/includes/_tokenfactory.md, source/includes/_txfees.md, source/includes/_wasm.md, source/includes/_wasmx.md Updated all example code snippets and doc tables to use latest SDK clients (Python v2, Go V2), new broadcaster utility, improved output formatting, and updated JSON schema references.
source/includes/_erc20.md, source/includes/_evm.md Added new documentation files for ERC20 and EVM modules, including queries, transactions, and code examples.
source/includes/_changelog.md Added changelog entry for 2025-07-10 covering new modules, error docs, and SDK releases.
source/index.html.md Included "erc20" and "evm" modules in the documentation index.
source/json_tables/chain/exchange/queryDerivativeOrderbookResponse.json Updated type annotations for price level fields.
source/json_tables/chain/exchange/expiryFuturesMarketInfo.json, source/json_tables/chain/exchange/fullDerivativeMarket.json, source/json_tables/chain/exchange/level.json, source/json_tables/chain/exchange/midPriceAndTOB.json, source/json_tables/chain/exchange/perpetualMarketFunding.json, source/json_tables/chain/exchange/querySpotMidPriceAndTOBResponse.json, source/json_tables/chain/exchange/querySpotOrderbookRequest.json, source/json_tables/chain/exchange/spotMarket.json, source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json, source/json_tables/chain/exchange/trimmedLimitOrder.json, source/json_tables/chain/exchange/trimmedSpotLimitOrder.json, source/json_tables/chain/exchange/volumeRecord.json, source/json_tables/chain/exchange/effectivePosition.json Clarified descriptions to specify human readable formats for decimal/price/quantity fields.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Makefile
    participant Scripts
    participant Repos
    participant Docs

    User->>Makefile: make update-all-proto-related-files
    Makefile->>Repos: Clone cosmos-sdk, injective-core, indexer
    Makefile->>Scripts: Run extract_errors.sh
    Scripts->>Repos: Scan Go files for errors
    Scripts->>Docs: Output JSON error tables
    Makefile->>Scripts: Run generate_proto_json_files.sh
    Scripts->>Repos: Scan proto and pb.go files
    Scripts->>Docs: Output JSON proto tables
    Makefile->>Repos: Clean up temp directories
    Makefile->>Docs: Print success message
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Poem

🐇
In docs we burrow, deep and wide,
With scripts and tables by our side.
Errors sorted, schemas neat,
Examples fresh—oh, what a feat!
New modules sprout, the docs expand,
All built with a bunny’s steady hand.
🥕

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/chain_upgrade_v1_16

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 26

🔭 Outside diff range comments (3)
source/includes/_tokenfactory.md (3)

642-642: Broadcast abstraction mismatch

The example still uses MsgBroadcasterWithPk.new_using_simulation. It should be updated to new_using_gas_heuristics to align with the new broadcasting abstraction introduced across modules.


857-857: Broadcast abstraction mismatch

This example still uses new_using_simulation; update to new_using_gas_heuristics to follow the unified broadcasting interface.


1080-1080: Broadcast abstraction mismatch

Update new_using_simulation to new_using_gas_heuristics in the MsgBurn example to match the new broadcaster API.

♻️ Duplicate comments (22)
source/includes/_tendermint.md (21)

36-37: Duplicate: snippet URL branch update
Same update applied to the Go example MARKDOWN-AUTO-DOCS:START URL.


235-236: Duplicate: snippet URL branch update
GetSyncing Python example now points to raw/dev.


239-239: Duplicate: AsyncClient v2 import
Reuses pyinjective.async_client_v2 in the GetSyncing example.


277-279: Duplicate: Go RPC client initialization
GetSyncing Go example follows the simplified rpchttp.New pattern.


307-310: Duplicate: NewChainClientV2 usage
GetSyncing Go snippet also instantiates NewChainClientV2.


324-324: Duplicate: tab indentation for JSON
Streaming the GetSyncing response with a tab-indented JSON.


357-358: Duplicate: snippet URL branch update
GetLatestBlock Python example uses the dev branch URL.


363-363: Duplicate: AsyncClient v2 import
Consistent update to use pyinjective.async_client_v2.


431-431: Duplicate: NewChainClientV2 in GetLatestBlock
Applied the updated chain client version pattern.


448-448: Duplicate: Go JSON indent tabs
Standard tab indentation reused for the latest block output.


764-764: Duplicate: snippet URL branch update
GetBlockByHeight Python snippet updated to point to raw/dev.


769-769: Duplicate: AsyncClient v2 import
Reflects the v2 client import in GetBlockByHeight.


806-806: Duplicate: Go RPC initialization
Reuses the rpchttp.New pattern for GetBlockByHeight.


837-837: Duplicate: NewChainClientV2 usage
Consistently updated in GetBlockByHeight Go code.


855-855: Duplicate: JSON indent with tabs
Maintain consistent formatting for block-by-height responses.


1205-1205: Duplicate: AsyncClient v2 import
LatestValidatorSet Python example updated accordingly.


1242-1242: Duplicate: Go RPC initialization
RPC client instantiation aligned in the validator set example.


1273-1273: Duplicate: NewChainClientV2 usage
Reflects new client version across all Go examples.


1393-1393: Duplicate: AsyncClient v2 import
ValidatorSetByHeight Python example follows the v2 import convention.


1435-1435: Duplicate: Go RPC initialization
ValidatorSetByHeight example uses the same RPC client setup.


1466-1466: Duplicate: NewChainClientV2 usage
Final application of the new chain client version in Go.

source/includes/_wasm.md (1)

1968-1969: Use proper markdown headings instead of emphasis
Same recommendation as above: use heading levels instead of bold for section titles.

Also applies to: 1988-1989

🧹 Nitpick comments (125)
source/json_tables/chain/exchange/perpetualMarketFunding.json (1)

3-3: Fix typo in description.

The word “redable” is misspelled; update to “readable” for clarity in the user-facing docs.

-    {"Parameter": "cumulative_price", "Type": "Decimal", "Description": "The cumulative price for the current hour up to the last timestamp (in human redable format)"},
+    {"Parameter": "cumulative_price", "Type": "Decimal", "Description": "The cumulative price for the current hour up to the last timestamp (in human readable format)"},
source/json_tables/chain/exchange/expiryFuturesMarketInfo.json (1)

5-6: Fix typos in parameter descriptions.

Replace “redable” with “readable” to maintain consistency and prevent confusion.

-    {"Parameter": "expiration_twap_start_price_cumulative", "Type": "Decimal", "Description": "Defines the cumulative price for the start of the TWAP window (in human redable format)"},
-    {"Parameter": "settlement_price", "Type": "Decimal", "Description": "The settlement price (in human redable format)"}
+    {"Parameter": "expiration_twap_start_price_cumulative", "Type": "Decimal", "Description": "Defines the cumulative price for the start of the TWAP window (in human readable format)"},
+    {"Parameter": "settlement_price", "Type": "Decimal", "Description": "The settlement price (in human readable format)"}
source/json_tables/chain/exchange/level.json (1)

2-3: Correct typos in parameter descriptions.

Change “redable” to “readable” for both p and q.

-    {"Parameter": "p", "Type": "Decimal", "Description": "Price (in human redable format)"},
-    {"Parameter": "q", "Type": "Decimal", "Description": "Quantity (in human redable format)"}
+    {"Parameter": "p", "Type": "Decimal", "Description": "Price (in human readable format)"},
+    {"Parameter": "q", "Type": "Decimal", "Description": "Quantity (in human readable format)"}
source/json_tables/cosmos/auth/Bech32PrefixResponse.json (1)

1-7: Add missing Description for bech32_prefix.

The Description field is empty, leaving consumers without context. Please populate it (e.g., “The Bech32 prefix used for addresses in this chain”).

source/json_tables/chain/exchange/querySpotOrderbookRequest.json (1)

5-6: Fix spelling in description.

The phrase "human redable format" contains a typo and inconsistent hyphenation. Update both entries to "human-readable format" for clarity and correctness.

- "Description": "Limit the number of entries to return per side based on the cumulative notional (in human redable format)"
+ "Description": "Limit the number of entries to return per side based on the cumulative notional (in human-readable format)"
- "Description": "Limit the number of entries to return per side based on the cumulative quantity (in human redable format)"
+ "Description": "Limit the number of entries to return per side based on the cumulative quantity (in human-readable format)"
source/json_tables/cosmos/auth/AddressBytesToStringRequest.json (1)

5-5: Add missing parameter description.

The Description field is empty, which reduces schema clarity. Consider adding a meaningful description, for example:

"Description": "The address in byte-array format to be converted into a human-readable string."
source/json_tables/cosmos/auth/ModuleAccount.json (2)

5-5: Add missing description for name.

Provide a concise description, e.g.:

"Description": "The identifier of the module account."

10-10: Add missing description for permissions.

Provide a concise description, e.g.:

"Description": "A list of permissions granted to this module account."
source/json_tables/cosmos/auth/AddressStringToBytesRequest.json (1)

5-5: Add missing parameter description.

The Description field is empty; consider clarifying the purpose, e.g.:

"Description": "The Bech32-encoded address string to convert into its byte-array representation."
source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringRequest.json (1)

5-5: Refine description to improve clarity.

The current description is redundant and starts with a lowercase. Update to:

-"Description": "denom is the coin denom to query the metadata for."
+"Description": "The coin denomination to query metadata for."
source/json_tables/cosmos/auth/QueryAccountResponse.json (1)

3-6: Add a Required field for consistency in JSON tables.
To align with other schema entries (e.g., QueryAccountsRequest.json), explicitly mark whether account is required. Also verify that the Type (types.Any) matches the protobuf naming in the generated JSON artifacts.

source/json_tables/cosmos/auth/QueryAccountsRequest.json (1)

3-6: Standardize Required usage across JSON schema entries.
This file includes a Required property, but others do not. To maintain consistency, either include Required in all new schema files or remove it here and drive requirement enforcement elsewhere.

source/json_tables/cosmos/bank/MsgMultiSend.json (2)

9-12: Provide a description for outputs. The outputs field has an empty "Description". Please add a concise explanation (for example, "List of recipient outputs for distribution of funds").


3-6: Clarify the Type field for inputs. Consider specifying "array of Input" or "List<Input>" instead of the generic "Input array" to align with other schema conventions.

source/json_tables/cosmos/bank/Output.json (1)

1-12: Add missing Required flags and meaningful descriptions

This schema omits the "Required" field for each parameter and leaves descriptions blank. To align with other module schemas, add "Required": "Yes" (or "No" where appropriate) and supply concise descriptions for address and coins.

source/json_tables/cosmos/bank/MsgSetSendEnabled.json (1)

1-21: Use consistent Go-style array notation for types

To align with Go import paths and other schemas, replace "SendEnabled array" and "string array" with []SendEnabled (or fully qualified path) and []string, respectively:

-"Type": "SendEnabled array"
+"Type": "[]SendEnabled"

-"Type": "string array"
+"Type": "[]string"
source/json_tables/cosmos/auth/Params.json (1)

1-28: Provide descriptions for auth module parameters

All five parameters currently have empty "Description" fields. Please add concise descriptions for each (max_memo_characters, tx_sig_limit, etc.) to improve clarity in generated docs.

source/json_tables/chain/exchange/trimmedLimitOrder.json (1)

2-3: Fix typo in “readable” within descriptions.

The word “redable” is misspelled in both descriptions. It should read “human readable format” (or “human-readable format” for consistency).

Diff:

--- a/source/json_tables/chain/exchange/trimmedLimitOrder.json
+++ b/source/json_tables/chain/exchange/trimmedLimitOrder.json
@@ 2,3c2,3
-    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"},
-    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"},
+    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human readable format)"},
+    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human readable format)"},
source/json_tables/chain/exchange/trimmedSpotLimitOrder.json (1)

2-4: Correct spelling and hyphenation in parameter descriptions.

“redable” should be “readable,” and you may consider using “human-readable format” (with a hyphen) to match common style guidelines.

Diff:

--- a/source/json_tables/chain/exchange/trimmedSpotLimitOrder.json
+++ b/source/json_tables/chain/exchange/trimmedSpotLimitOrder.json
@@ 2,4c2,4
-    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"},
-    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"},
-    {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human redable format)"},
+    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human-readable format)"},
+    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human-readable format)"},
+    {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human-readable format)"},
source/json_tables/chain/exchange/effectivePosition.json (1)

3-5: Fix typo and standardize hyphenation in descriptions.

Replace “redable” with “readable” and consider “human-readable format” for consistency across schemas.

Diff:

--- a/source/json_tables/chain/exchange/effectivePosition.json
+++ b/source/json_tables/chain/exchange/effectivePosition.json
@@ 3,5c3,5
-    {"Parameter": "quantity", "Type": "Decimal", "Description": "The position's amount (in human redable format)"},
-    {"Parameter": "entry_price", "Type": "Decimal", "Description": "The order execution price when the position was created (in human redable format)"},
-    {"Parameter": "effective_margin", "Type": "Decimal", "Description": "The position's current margin amount (in human redable format)"}
+    {"Parameter": "quantity", "Type": "Decimal", "Description": "The position's amount (in human-readable format)"},
+    {"Parameter": "entry_price", "Type": "Decimal", "Description": "The order execution price when the position was created (in human-readable format)"},
+    {"Parameter": "effective_margin", "Type": "Decimal", "Description": "The position's current margin amount (in human-readable format)"}
source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json (1)

2-5: Correct spelling and improve consistency in format description.

Change “redable” to “readable” and hyphenate “human-readable format” to align with other schema entries.

Diff:

--- a/source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json
+++ b/source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json
@@ 2,5c2,5
-    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"},
-    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"},
-    {"Parameter": "margin", "Type": "Decimal", "Description": "Order margin (in human redable format)"},
-    {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human redable format)"},
+    {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human-readable format)"},
+    {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human-readable format)"},
+    {"Parameter": "margin", "Type": "Decimal", "Description": "Order margin (in human-readable format)"},
+    {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human-readable format)"},
source/json_tables/chain/exchange/volumeRecord.json (1)

2-3: Fix typo in description: "redable" → "readable".

Update both parameter descriptions to correct the spelling and add a hyphen for clarity:

- "The maker volume (in human redable format)"
+ "The maker volume (in human-readable format)"

- "The taker volume (in human redable format)"
+ "The taker volume (in human-readable format)"
source/json_tables/chain/exchange/fullDerivativeMarket.json (1)

4-4: Fix typo in description: "redable" → "readable".

Correct the spelling for mark_price to:

- "The market mark price (in human redable format)"
+ "The market mark price (in human-readable format)"
source/json_tables/chain/exchange/midPriceAndTOB.json (1)

2-4: Fix typo in descriptions: "redable" → "readable".

Apply these corrections:

- "Market's mid price (in human redable format)"
+ "Market's mid price (in human-readable format)"

- "Market's best buy price (in human redable format)"
+ "Market's best buy price (in human-readable format)"

- "Market's best sell price (in human redable format)"
+ "Market's best sell price (in human-readable format)"
source/json_tables/chain/exchange/derivativeMarket.json (1)

16-18: Fix typo in descriptions: "redable" → "readable".

Correct the spelling and format for these fields:

- "Minimum tick size that the price required for orders in the market (in human redable format)"
+ "Minimum tick size for order prices in the market (in human-readable format)"

- "Minimum tick size of the quantity required for orders in the market (in human redable format)"
+ "Minimum tick size for order quantities in the market (in human-readable format)"

- "Minimum notional (in quote asset) required for orders in the market (in human redable format)"
+ "Minimum notional (in quote asset) required for orders in the market (in human-readable format)"
source/json_tables/cosmos/auth/QueryParamsResponse.json (1)

1-7: Enhance description clarity. Consider specifying the module (e.g., “Params for the auth module”) and adjusting capitalization:

  • Change to "Description": "Params for the auth module."
    This will align with other schema entries.
source/json_tables/cosmos/auth/AddressStringToBytesResponse.json (1)

3-5: Missing description for address_bytes
The Description field is empty—please add a concise explanation (for example, “The account address encoded as a byte array.”).

source/json_tables/cosmos/auth/QueryAccountInfoResponse.json (1)

3-5: Refine description style for info
The description uses a lowercase start and could be clearer. Consider updating to something like:
“Info contains the account details represented by a BaseAccount.”

source/json_tables/cosmos/StringEvent.json (2)

3-5: Add description for type parameter
The Description is empty—please specify that this is the event’s type identifier (e.g., “The event type as a string.”).


8-10: Add description for attributes parameter
The Description field is blank—consider: “An array of attributes associated with the event.”

source/json_tables/cosmos/auth/QueryAccountAddressByIDResponse.json (1)

3-5: Provide description for account_address
The Description field is empty—please clarify its purpose (e.g., “The Bech32-encoded account address returned by ID lookup.”).

source/json_tables/chain/errors/auction.json (1)

3-5: Normalize error description formatting
Current descriptions are lowercase and lack punctuation consistency. Recommend capitalizing and adding periods, for example:

  • “Invalid bid denom.”
  • “Invalid bid round.”

Also applies to: 7-9

source/json_tables/cosmos/SimulationResponse.json (1)

1-12: Add descriptive descriptions for schema parameters.

Both gas_info and result fields have empty descriptions. Please provide meaningful descriptions for clarity. For example:

-    "Description": ""
+    "Description": "gas_info provides details about gas limits and usage in the simulation."

-    "Description": ""
+    "Description": "result contains the outcome of the simulation, including events and return data."
source/includes/_changelog.md (1)

12-12: Fix module grammar in 2025-04-21 entry.

The phrase “TXFees modules endpoints” implies multiple modules. Update to the singular form:

- Added documentation for `TXFees` modules endpoints
+ Added documentation for `TXFees` module endpoints
source/json_tables/cosmos/Coin.json (2)

3-6: Missing description for denom.

Provide a concise description for the denom field (e.g., “The coin denomination identifier.”).


8-11: Missing description for amount.

Provide a concise description for the amount field (e.g., “The integer amount of coins.”).

source/json_tables/cosmos/TxMsgData.json (2)

3-6: Align array type notation for data.

Consider using a standard pattern (e.g., "MsgData[]" or "array of MsgData") to match other JSON schema conventions.


8-11: Align array type notation for msg_responses.

Consider using "types.Any[]" or "array of types.Any" for clarity and consistency across schemas.

source/json_tables/cosmos/bank/Params.json (1)

8-11: Provide description for default_send_enabled.

Add a clear description (e.g., “Flag indicating the default send-enabled status for new denominations.”).

source/json_tables/cosmos/ABCIMessageLog.json (2)

3-6: Provide a description for msg_index.
The msg_index field lacks a description. Please add a concise explanation (e.g., “Zero-based index of this message within the transaction”).


8-11: Provide a description for log.
The log field is undocumented—add details such as “The ABCI response log for this message.”

source/json_tables/cosmos/bank/QueryAllBalancesResponse.json (2)

3-6: Refine the balances description.
Current text (“balances is the balances of all the coins.”) is redundant—consider “Balances of all coins held by the account.”


8-11: Refine the pagination description.
Consider “Pagination details for the response, including next key and total count.” for clarity.

source/json_tables/chain/errors/insurance.json (1)

1-51: Standardize error field naming.
To align with other chain modules, consider renaming the "Error Code" key to "code" and "Description" to "description".

source/json_tables/cosmos/bank/MsgSend.json (1)

1-21: Missing descriptions for required fields.
The Description entries for from_address, to_address, and amount are empty, which will lead to gaps in generated docs.

Populate them to improve documentation, for example:

 [
   {
     "Parameter": "from_address",
     "Type": "string",
-    "Description": "",
+    "Description": "address of the account sending tokens.",
     "Required": "Yes"
   },
   {
     "Parameter": "to_address",
     "Type": "string",
-    "Description": "",
+    "Description": "address of the account receiving tokens.",
     "Required": "Yes"
   },
   {
     "Parameter": "amount",
     "Type": "github_com_cosmos_cosmos_sdk_types.Coins",
-    "Description": "",
+    "Description": "amount of coins to transfer.",
     "Required": "Yes"
   }
 ]
source/json_tables/cosmos/bank/QueryAllBalancesRequest.json (1)

1-20: Request schema is accurate; consider grouping required and optional fields.
Fields address and resolve_denom (required) and pagination (optional) are defined correctly. For readability, you may want to group required parameters first, followed by optional ones.

source/includes/_insurancerpc.md (1)

67-67: Remove hard tabs for markdown formatting
Replace the hard tab characters at the start of this line with spaces to satisfy markdownlint (MD010).

source/includes/_auctionsrpc.md (3)

458-465: Inconsistent JSON indentation in Go InjBurntEndpoint example
This snippet still uses two spaces (" ") instead of a tab. For consistency, change to json.MarshalIndent(injBurntResponse, "", "\t").


242-242: Remove hard tabs for markdown formatting
There’s a hard tab at the start of this line—please replace it with spaces to comply with markdownlint MD010.


580-580: Remove hard tabs for markdown formatting
Replace the hard tab character here with spaces to satisfy markdownlint (MD010).

source/json_tables/cosmos/bank/BalanceUpdate.json (1)

1-17: Enhance JSON schema consistency

  • Rename addraddress and amtamount to match existing schemas.
  • Use "String" (not "byte array") for both address and denom.
  • Add meaningful "Description" values for address and denom.
source/includes/_broadcaster.md (1)

490-494: Fix typographical errors in notice aside

  • Change “There an important consideration” → “There is an important consideration”
  • Correct “correclty” → “correctly”
- <aside class="notice">
- There an important consideration when using the Transaction Broadcaster calculating the gas cost without simulation to send a _MsgBatchUpdateOrders_ message.
+ <aside class="notice">
+ There is an important consideration when using the Transaction Broadcaster to calculate gas cost without simulation for _MsgBatchUpdateOrders_ messages.
...
- The logic that estimates the gas cost for the _MsgBatchUpdateOrders_ correclty calculates...
+ The logic that estimates the gas cost for the _MsgBatchUpdateOrders_ correctly calculates...
source/json_tables/chain/errors/ocr.json (2)

71-73: Fix typo in description
Change "feed doesnt exists""feed doesn't exist".

-   "Description": "feed doesnt exists"
+   "Description": "feed doesn't exist"

1-94: Consider unifying description casing
Some descriptions start lowercase (e.g., "stale report"), others uppercase. For consistency, choose sentence- or title-case across all entries.

source/json_tables/chain/errors/oracle.json (1)

171-173: Standardize abbreviation casing
Change "asset id""asset ID" for consistency with other entries (e.g., IBC, RPC).

-    "Description": "stork asset id not unique"
+    "Description": "stork asset ID not unique"
source/json_tables/cosmos/SearchTxsResult.json (2)

1-32: Nitpick: Grammar and clarity in descriptions

  • For page_number (lines 13–15), change "start from 1" to "starts from 1".
  • For limit (lines 23–25), change "Max count txs per page" to "Maximum number of transactions per page".

27-30: Nitpick: Qualify TxResponse array type
Consider using the fully qualified type (e.g., cosmos.tx.v1beta1.TxResponse array) to align with other schema definitions.

source/includes/_portfoliorpc.md (2)

15-36: Suggest using asyncio.run for Python example
Instead of asyncio.get_event_loop().run_until_complete(main()), use asyncio.run(main()) for a cleaner, more idiomatic approach on Python 3.7+.


295-339: Suggest using asyncio.run in stream example
Consider replacing asyncio.get_event_loop().run_until_complete(main()) with asyncio.run(main()) to follow modern Python async best practices.

source/json_tables/chain/errors/exchange.json (1)

3-6: Inconsistent description capitalization
Some descriptions start lowercase (e.g., "failed to validate order") while others are sentence-capitalized (e.g., "An equivalent market launch proposal already exists."). Standardize capitalization across all entries.

Also applies to: 159-160

source/json_tables/chain/errors/permissions.json (1)

47-49: Nitpick: Simplify description
For Error Code 13, change "voucher was not found" to "voucher not found" to align with other entries.

source/json_tables/cosmos/TxResponse.json (2)

53-56: Nitpick: Clarify Type for tx
Consider using the fully qualified google.protobuf.Any rather than types.Any to match official Cosmos JSON schema conventions.


59-61: Nitpick: Add missing space in description
Insert a space after the period in "block.LastCommit" → "block. LastCommit" for readability.

source/json_tables/cosmos/bank/GenesisState.json (1)

1-27: Ensure consistent punctuation in descriptions.

Some descriptions lack a trailing period, and capitalization varies. For example, "balances is an array containing the balances of all the accounts" should end with a period. Harmonize description formatting across all entries for consistency.

source/json_tables/cosmos/bank/Metadata.json (1)

43-46: Fix grammar in the decimals description.

Change "Decimals represent the number of decimals use to represent token amount on chain" to "Decimals represent the number of decimals used to represent token amounts on chain."

scripts/generate_errors_md.sh (1)

13-18: Separate declaration and assignment to avoid masking return values.

Per ShellCheck SC2155, split lines like local module_name=$(basename ...) and local capitalized_name=$(...) into two statements each for clarity and to avoid masking errors.

source/includes/_derivativesrpc.md (12)

14-35: Standardize IndexerClient instantiation
The Python Market example uses IndexerClient(network) here, while other snippets use keyword arguments (IndexerClient(network=network)). Picking one consistent invocation style will make examples clearer.


246-264: Consistent client instantiation in Markets example
The Python Markets snippet again mixes positional and keyword forms of IndexerClient. Unify this call to maintain consistency across all Python examples.


558-602: Consistent client instantiation in StreamMarkets
In the Python StreamMarkets example, the instantiation client = IndexerClient(network) should follow the same style chosen elsewhere.


834-864: Consistent client instantiation in HistoricalOrders
The Python HistoricalOrders example should use the same IndexerClient invocation style (positional vs keyword) as the other code snippets.


1175-1221: Consistent client instantiation in StreamHistoricalOrders
Please align the IndexerClient call here with the style used in other Python examples.


1432-1460: Consistent client instantiation in Trades
Align the IndexerClient invocation here with the chosen standard (either always positional or always keyword).


2162-2199: Consistent client instantiation in Positions
Unify the IndexerClient instantiation style in the Python Positions example to match other code samples.


2706-2733: Consistent client instantiation in LiquidablePositions
Please conform this example’s IndexerClient usage to the chosen standard (positional vs keyword) used elsewhere.


3020-3044: Align default depth values across examples
The Python OrderbooksV2 example sets depth = 1, while the Go version uses depth := 10. Consider using the same default depth in both languages to avoid confusion.


3047-3080: Go OrderbooksV2 consistent depth parameter
Ensure the Go snippet’s depth value matches the Python example or document why they differ.


3269-3313: Consistent client instantiation in StreamOrderbooks
Standardize the Python IndexerClient call here to the established convention for instantiation.


3435-3520: Standardize snapshot & streaming client usage
In the load/stream example:

  • Keep IndexerClient instantiation consistent.
  • The code correctly switches to fetch_derivative_orderbooks_v2 and listen_derivative_orderbook_updates.
    These updates look good; just unify instantiation style.
source/includes/_wasmx.md (1)

104-104: Replace hard tabs with spaces in code blocks.

Leading hard tabs in the Go snippet cause markdownlint MD010 warnings. Convert indentation to spaces for consistency.

Also applies to: 134-134, 178-178

source/includes/_evm.md (1)

299-301: Grammar: Fix wording in ValidatorAccount description.

The phrase "Queries an Ethereum account's from a validator consensus Address" is unclear. Rephrase to "Queries an Ethereum account from a validator consensus address" or similar.

source/includes/_ibccoreclient.md (1)

61-61: Nitpick: Replace hard tabs with spaces.

MarkdownLint flagged hard tabs at multiple lines. Converting tabs to spaces will improve consistency and prevent lint errors (MD010).

Also applies to: 92-92, 281-281, 312-312, 961-961, 992-992, 1124-1124, 1155-1155, 1339-1339, 1370-1370, 1502-1502, 1533-1533, 1551-1551, 1631-1631, 1662-1662, 1679-1679, 1770-1770, 1801-1801, 1818-1818, 1894-1894, 1925-1925, 1942-1942

source/includes/_chainstream.md (2)

142-142: Align bank balance filter semantics
The Go example uses a wildcard (Accounts: []string{"*"}) while the Python example filters a specific account. Consider harmonizing these for consistency or adding a note explaining the difference.


268-268: Add missing comma in sentence
A comma before “and” improves readability:
“filtered by the request parameters**, and** it's identified by the block height.”

source/includes/_insurance.md (1)

29-29: Validate environment variable.
Consider adding a check to ensure INJECTIVE_PRIVATE_KEY is set before using it, e.g.:

if not private_key_in_hexa:
    raise EnvironmentError("INJECTIVE_PRIVATE_KEY not found")
scripts/extract_errors.sh (1)

41-64: Error extraction logic.
The extract_errors function captures errors.Register calls into JSON. Consider enhancing the regex to support multiline or extra whitespace variations around arguments for increased robustness.

source/includes/_clients.md (2)

74-74: Add missing comma for better readability.

-Both clients provide similar interfaces but with different underlying implementations. Choose V2 for new projects unless you have specific requirements for V1 compatibility.
+Both clients provide similar interfaces but with different underlying implementations. Choose V2 for new projects, unless you have specific requirements for V1 compatibility.

85-85: Fix colon usage before prepositional phrase.

Remove the colon as it's not needed when introducing a list after a preposition.

-  - Human-readable format for: amounts, prices, margins, and notionals
+  - Human-readable format for amounts, prices, margins, and notionals
scripts/generate_proto_json_files.sh (2)

459-459: Avoid masking return values in variable assignments
ShellCheck SC2155 flagged the use of local subdir_name=$(basename "$subdir"). Split declaration and assignment to prevent return code masking.

Apply:

- local subdir_name=$(basename "$subdir")
+ local subdir_name
+ subdir_name=$(basename "$subdir")

480-480: Avoid masking return values in variable assignments
ShellCheck SC2155 flagged local module_name=$(basename "$module_dir"). Split the declaration and assignment.

Apply:

- local module_name=$(basename "$module_dir")
+ local module_name
+ module_name=$(basename "$module_dir")
source/includes/_wasm.md (31)

57-57: Replace hard tab with spaces & confirm removal
The rpchttp.New call correctly omits the "/websocket" argument for v1.16. Please replace the leading hard tab with spaces to comply with MD010 (no-hard-tabs).


88-91: Replace hard tabs in Go code
Use spaces instead of hard tabs for indentation in the chainclient.NewChainClientV2 block to satisfy MD010.


106-107: Use tab for JSON output indent and fix tabs in markdown
Switching to "\t" for json.MarshalIndent is correct; please remove leading hard tabs in these lines to satisfy MD010.


231-231: Replace hard tab with spaces & confirm removal
The rpchttp.New call now omits "/websocket"; please replace the hard tab with spaces per MD010.


262-266: Replace hard tabs in Go code
Use spaces for indentation in the chainclient.NewChainClientV2 invocation to comply with MD010.


281-283: Use tab for JSON output indent and fix tabs in markdown
Changing json.MarshalIndent to use "\t" is intentional; please remove the hard tabs on these lines to satisfy MD010.


482-483: Replace hard tab with spaces & confirm removal
The rpchttp.New call correctly omits "/websocket"; replace the hard tab with spaces to comply with MD010.


513-516: Replace hard tabs in Go code
Convert hard tabs to spaces in the NewChainClientV2 call block to satisfy MD010.


532-533: Use tab JSON indent & fix tabs in markdown
Updating json.MarshalIndent to use "\t" is appropriate; please remove leading hard tabs per MD010.


638-639: Replace hard tab with spaces & confirm removal
Removed the "/websocket" suffix; replace the hard tab with spaces per MD010.


669-672: Replace hard tabs in Go code
Use spaces for indentation around the NewChainClientV2 invocation to comply with MD010.


688-690: Use tab JSON indent & fix tabs in markdown
Switching to "\t" for indentation is correct; please remove hard tabs on these lines per MD010.


803-804: Replace hard tab with spaces & confirm removal
The rpchttp.New call no longer includes "/websocket"; replace the hard tab with spaces to satisfy MD010.


834-837: Replace hard tabs in Go code
Convert hard tabs to spaces in the NewChainClientV2 block to comply with MD010.


853-856: Use tab JSON indent & fix tabs in markdown
Updating to "\t" is correct; please remove hard tabs per MD010.


930-933: Replace hard tab with spaces & confirm removal
Removed "/websocket" from the client instantiation; replace the hard tab with spaces per MD010.


961-964: Replace hard tabs in Go code
Use spaces for indentation in the NewChainClientV2 call to satisfy MD010.


980-982: Use tab JSON indent & fix tabs in markdown
Switching to "\t" for JSON indent is correct; please remove hard tabs on these lines per MD010.


1066-1069: Replace hard tab with spaces & confirm removal
Removed "/websocket" argument; replace the hard tab with spaces to comply with MD010.


1097-1100: Replace hard tabs in Go code
Convert hard tabs to spaces in the NewChainClientV2 section to satisfy MD010.


1115-1116: Use tab JSON indent & fix tabs in markdown
Updating to "\t" is correct; please remove hard tabs per MD010.


1247-1250: Replace hard tab with spaces & confirm removal
Removed "/websocket" from the RPC client call; replace the hard tab with spaces per MD010.


1278-1281: Replace hard tabs in Go code
Use spaces for indentation in the NewChainClientV2 block to satisfy MD010.


1296-1297: Use tab JSON indent & fix tabs in markdown
Switching the indent string to "\t" is correct; please remove hard tabs per MD010.


1457-1460: Replace hard tab with spaces & confirm removal
Removed "/websocket" from the Tendermint client initialization; replace the hard tab with spaces per MD010.


1488-1491: Replace hard tabs in Go code
Convert hard tabs to spaces in the NewChainClientV2 call to comply with MD010.


1506-1507: Use tab JSON indent & fix tabs in markdown
Updating to "\t" is correct; please remove hard tabs per MD010.


1611-1614: Replace hard tab with spaces & confirm removal
Removed "/websocket" argument from rpchttp.New; replace the hard tab with spaces per MD010.


1642-1645: Replace hard tabs in Go code
Use spaces for indentation in the NewChainClientV2 section to satisfy MD010.


1661-1663: Use tab JSON indent & fix tabs in markdown
Switching to "\t" for json.MarshalIndent is correct; please remove hard tabs to comply with MD010.


1822-1823: Use proper markdown headings instead of emphasis
Replace **TxResponse** and **ABCIMessageLog** with appropriate heading syntax (e.g., ## TxResponse) to comply with MD036.

Also applies to: 1842-1843

Makefile (5)

2-9: Pin repository versions explicitly for reproducibility
Defining COSMOS_SDK_VERSION, INJECTIVE_CORE_VERSION, and INDEXER_VERSION ensures consistent document generations. Consider allowing overrides via environment variables (e.g., COSMOS_SDK_VERSION ?= …) so CI pipelines can bump versions without editing the Makefile.


12-15: Use a unique temporary directory per invocation
Hard-coding /tmp/injective-docs-repos may collide if multiple workflows run in parallel. Consider generating a unique temp dir with mktemp -d, for example:

TEMP_DIR := $(shell mktemp -d injective-docs-XXXXXX)

36-40: Sequence clone, update, cleanup for errors
update-errors-documentation cleanly wraps repository management around the error-doc pipeline. If desired, you could add set -e in your scripts to halt on the first failure.


47-54: Provide a concise alias for the combined update
update-all-proto-related-files is comprehensive but verbose. For ergonomics, add a short alias (e.g., all) or rename this to update-all-docs.


64-66: Guard cleanup to avoid accidental deletion
To ensure you never delete / or an empty variable, you could add a safety check:

clean-repos:
	@test -n "$(TEMP_DIR)" && test "$(TEMP_DIR)" != "/" && rm -rf "$(TEMP_DIR)"
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d18403a and 4b40ce1.

📒 Files selected for processing (127)
  • Makefile (1 hunks)
  • scripts/extract_errors.sh (1 hunks)
  • scripts/generate_errors_md.sh (1 hunks)
  • scripts/generate_proto_json_files.sh (1 hunks)
  • source/includes/_accountsrpc.md (21 hunks)
  • source/includes/_auction.md (5 hunks)
  • source/includes/_auctionsrpc.md (10 hunks)
  • source/includes/_authz.md (23 hunks)
  • source/includes/_bank.md (55 hunks)
  • source/includes/_broadcaster.md (10 hunks)
  • source/includes/_chainstream.md (7 hunks)
  • source/includes/_changelog.md (1 hunks)
  • source/includes/_clients.md (1 hunks)
  • source/includes/_derivativesrpc.md (58 hunks)
  • source/includes/_erc20.md (1 hunks)
  • source/includes/_errors.md (1 hunks)
  • source/includes/_evm.md (1 hunks)
  • source/includes/_explorerrpc.md (67 hunks)
  • source/includes/_ibccorechannel.md (63 hunks)
  • source/includes/_ibccoreclient.md (40 hunks)
  • source/includes/_ibccoreconnection.md (28 hunks)
  • source/includes/_ibctransfer.md (35 hunks)
  • source/includes/_insurance.md (9 hunks)
  • source/includes/_insurancerpc.md (4 hunks)
  • source/includes/_metarpc.md (11 hunks)
  • source/includes/_oracle.md (6 hunks)
  • source/includes/_oraclerpc.md (15 hunks)
  • source/includes/_overview.md (1 hunks)
  • source/includes/_permissions.md (87 hunks)
  • source/includes/_portfoliorpc.md (6 hunks)
  • source/includes/_spotrpc.md (41 hunks)
  • source/includes/_tendermint.md (28 hunks)
  • source/includes/_tokenfactory.md (50 hunks)
  • source/includes/_txfees.md (4 hunks)
  • source/includes/_wasm.md (55 hunks)
  • source/includes/_wasmx.md (6 hunks)
  • source/index.html.md (1 hunks)
  • source/json_tables/chain/abciMessageLog.json (0 hunks)
  • source/json_tables/chain/attribute.json (0 hunks)
  • source/json_tables/chain/errors/auction.json (1 hunks)
  • source/json_tables/chain/errors/erc20.json (1 hunks)
  • source/json_tables/chain/errors/exchange.json (1 hunks)
  • source/json_tables/chain/errors/insurance.json (1 hunks)
  • source/json_tables/chain/errors/ocr.json (1 hunks)
  • source/json_tables/chain/errors/oracle.json (1 hunks)
  • source/json_tables/chain/errors/peggy.json (1 hunks)
  • source/json_tables/chain/errors/permissions.json (1 hunks)
  • source/json_tables/chain/errors/tokenfactory.json (1 hunks)
  • source/json_tables/chain/errors/wasmx.json (1 hunks)
  • source/json_tables/chain/event.json (0 hunks)
  • source/json_tables/chain/eventAttribute.json (0 hunks)
  • source/json_tables/chain/exchange/derivativeMarket.json (1 hunks)
  • source/json_tables/chain/exchange/effectivePosition.json (1 hunks)
  • source/json_tables/chain/exchange/expiryFuturesMarketInfo.json (1 hunks)
  • source/json_tables/chain/exchange/fullDerivativeMarket.json (1 hunks)
  • source/json_tables/chain/exchange/level.json (1 hunks)
  • source/json_tables/chain/exchange/marketStatus.json (0 hunks)
  • source/json_tables/chain/exchange/midPriceAndTOB.json (1 hunks)
  • source/json_tables/chain/exchange/perpetualMarketFunding.json (1 hunks)
  • source/json_tables/chain/exchange/queryDerivativeOrderbookResponse.json (1 hunks)
  • source/json_tables/chain/exchange/querySpotMidPriceAndTOBResponse.json (1 hunks)
  • source/json_tables/chain/exchange/querySpotOrderbookRequest.json (1 hunks)
  • source/json_tables/chain/exchange/spotMarket.json (1 hunks)
  • source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json (1 hunks)
  • source/json_tables/chain/exchange/trimmedLimitOrder.json (1 hunks)
  • source/json_tables/chain/exchange/trimmedSpotLimitOrder.json (1 hunks)
  • source/json_tables/chain/exchange/volumeRecord.json (1 hunks)
  • source/json_tables/chain/stringEvent.json (0 hunks)
  • source/json_tables/chain/tx/broadcastTxResponse.json (0 hunks)
  • source/json_tables/chain/txResponse.json (0 hunks)
  • source/json_tables/cosmos/ABCIMessageLog.json (1 hunks)
  • source/json_tables/cosmos/Attribute.json (1 hunks)
  • source/json_tables/cosmos/Coin.json (1 hunks)
  • source/json_tables/cosmos/DecCoin.json (1 hunks)
  • source/json_tables/cosmos/DecProto.json (1 hunks)
  • source/json_tables/cosmos/GasInfo.json (1 hunks)
  • source/json_tables/cosmos/IntProto.json (1 hunks)
  • source/json_tables/cosmos/MsgData.json (1 hunks)
  • source/json_tables/cosmos/Result.json (1 hunks)
  • source/json_tables/cosmos/SearchBlocksResult.json (1 hunks)
  • source/json_tables/cosmos/SearchTxsResult.json (1 hunks)
  • source/json_tables/cosmos/SimulationResponse.json (1 hunks)
  • source/json_tables/cosmos/StringEvent.json (1 hunks)
  • source/json_tables/cosmos/TxMsgData.json (1 hunks)
  • source/json_tables/cosmos/TxResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/AddressBytesToStringRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/AddressBytesToStringResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/AddressStringToBytesRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/AddressStringToBytesResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/BaseAccount.json (1 hunks)
  • source/json_tables/cosmos/auth/Bech32PrefixResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/GenesisState.json (1 hunks)
  • source/json_tables/cosmos/auth/ModuleAccount.json (1 hunks)
  • source/json_tables/cosmos/auth/ModuleCredential.json (1 hunks)
  • source/json_tables/cosmos/auth/MsgUpdateParams.json (1 hunks)
  • source/json_tables/cosmos/auth/Params.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountAddressByIDRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountAddressByIDResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountInfoRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountInfoResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountsRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryAccountsResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryModuleAccountByNameRequest.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryModuleAccountByNameResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryModuleAccountsResponse.json (1 hunks)
  • source/json_tables/cosmos/auth/QueryParamsResponse.json (1 hunks)
  • source/json_tables/cosmos/bank/Balance.json (1 hunks)
  • source/json_tables/cosmos/bank/BalanceUpdate.json (1 hunks)
  • source/json_tables/cosmos/bank/DenomOwner.json (1 hunks)
  • source/json_tables/cosmos/bank/DenomUnit.json (1 hunks)
  • source/json_tables/cosmos/bank/GenesisState.json (1 hunks)
  • source/json_tables/cosmos/bank/Input.json (1 hunks)
  • source/json_tables/cosmos/bank/Metadata.json (1 hunks)
  • source/json_tables/cosmos/bank/MsgMultiSend.json (1 hunks)
  • source/json_tables/cosmos/bank/MsgSend.json (1 hunks)
  • source/json_tables/cosmos/bank/MsgSetSendEnabled.json (1 hunks)
  • source/json_tables/cosmos/bank/MsgUpdateParams.json (1 hunks)
  • source/json_tables/cosmos/bank/Output.json (1 hunks)
  • source/json_tables/cosmos/bank/Params.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryAllBalancesRequest.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryAllBalancesResponse.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryBalanceRequest.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryBalanceResponse.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringRequest.json (1 hunks)
  • source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringResponse.json (1 hunks)
💤 Files with no reviewable changes (8)
  • source/json_tables/chain/abciMessageLog.json
  • source/json_tables/chain/tx/broadcastTxResponse.json
  • source/json_tables/chain/exchange/marketStatus.json
  • source/json_tables/chain/event.json
  • source/json_tables/chain/stringEvent.json
  • source/json_tables/chain/attribute.json
  • source/json_tables/chain/eventAttribute.json
  • source/json_tables/chain/txResponse.json
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
source/includes/_oraclerpc.md

64-64: Hard tabs
Column: 1

(MD010, no-hard-tabs)


228-228: Hard tabs
Column: 1

(MD010, no-hard-tabs)


229-229: Hard tabs
Column: 1

(MD010, no-hard-tabs)


233-233: Hard tabs
Column: 1

(MD010, no-hard-tabs)


234-234: Hard tabs
Column: 1

(MD010, no-hard-tabs)


266-266: Hard tabs
Column: 1

(MD010, no-hard-tabs)


278-278: Hard tabs
Column: 1

(MD010, no-hard-tabs)


289-289: Hard tabs
Column: 1

(MD010, no-hard-tabs)


290-290: Hard tabs
Column: 1

(MD010, no-hard-tabs)


291-291: Hard tabs
Column: 1

(MD010, no-hard-tabs)


292-292: Hard tabs
Column: 1

(MD010, no-hard-tabs)


294-294: Hard tabs
Column: 1

(MD010, no-hard-tabs)


295-295: Hard tabs
Column: 1

(MD010, no-hard-tabs)


296-296: Hard tabs
Column: 1

(MD010, no-hard-tabs)


297-297: Hard tabs
Column: 1

(MD010, no-hard-tabs)


298-298: Hard tabs
Column: 1

(MD010, no-hard-tabs)


299-299: Hard tabs
Column: 1

(MD010, no-hard-tabs)


300-300: Hard tabs
Column: 1

(MD010, no-hard-tabs)


301-301: Hard tabs
Column: 1

(MD010, no-hard-tabs)


303-303: Hard tabs
Column: 1

(MD010, no-hard-tabs)


418-418: Hard tabs
Column: 1

(MD010, no-hard-tabs)


419-419: Hard tabs
Column: 1

(MD010, no-hard-tabs)


423-423: Hard tabs
Column: 1

(MD010, no-hard-tabs)


424-424: Hard tabs
Column: 1

(MD010, no-hard-tabs)


456-456: Hard tabs
Column: 1

(MD010, no-hard-tabs)


468-468: Hard tabs
Column: 1

(MD010, no-hard-tabs)


469-469: Hard tabs
Column: 1

(MD010, no-hard-tabs)


470-470: Hard tabs
Column: 1

(MD010, no-hard-tabs)


471-471: Hard tabs
Column: 1

(MD010, no-hard-tabs)


473-473: Hard tabs
Column: 1

(MD010, no-hard-tabs)


474-474: Hard tabs
Column: 1

(MD010, no-hard-tabs)


475-475: Hard tabs
Column: 1

(MD010, no-hard-tabs)


476-476: Hard tabs
Column: 1

(MD010, no-hard-tabs)


477-477: Hard tabs
Column: 1

(MD010, no-hard-tabs)


479-479: Hard tabs
Column: 1

(MD010, no-hard-tabs)


480-480: Hard tabs
Column: 1

(MD010, no-hard-tabs)


481-481: Hard tabs
Column: 1

(MD010, no-hard-tabs)


482-482: Hard tabs
Column: 1

(MD010, no-hard-tabs)


484-484: Hard tabs
Column: 1

(MD010, no-hard-tabs)


485-485: Hard tabs
Column: 1

(MD010, no-hard-tabs)


486-486: Hard tabs
Column: 1

(MD010, no-hard-tabs)


503-503: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_metarpc.md

68-68: Hard tabs
Column: 1

(MD010, no-hard-tabs)


148-148: Hard tabs
Column: 1

(MD010, no-hard-tabs)


262-262: Hard tabs
Column: 1

(MD010, no-hard-tabs)


418-418: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_auctionsrpc.md

67-67: Hard tabs
Column: 1

(MD010, no-hard-tabs)


242-242: Hard tabs
Column: 1

(MD010, no-hard-tabs)


580-580: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_wasmx.md

104-104: Hard tabs
Column: 1

(MD010, no-hard-tabs)


134-134: Hard tabs
Column: 1

(MD010, no-hard-tabs)


178-178: Hard tabs
Column: 1

(MD010, no-hard-tabs)


211-211: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


231-231: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

source/includes/_ibccoreclient.md

61-61: Hard tabs
Column: 1

(MD010, no-hard-tabs)


92-92: Hard tabs
Column: 1

(MD010, no-hard-tabs)


281-281: Hard tabs
Column: 1

(MD010, no-hard-tabs)


312-312: Hard tabs
Column: 1

(MD010, no-hard-tabs)


961-961: Hard tabs
Column: 1

(MD010, no-hard-tabs)


992-992: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1124-1124: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1155-1155: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1339-1339: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1370-1370: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1502-1502: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1533-1533: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1551-1551: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1631-1631: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1662-1662: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1679-1679: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1770-1770: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1801-1801: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1818-1818: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1894-1894: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1925-1925: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1942-1942: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_tokenfactory.md

58-58: Hard tabs
Column: 1

(MD010, no-hard-tabs)


89-89: Hard tabs
Column: 1

(MD010, no-hard-tabs)


108-108: Hard tabs
Column: 1

(MD010, no-hard-tabs)


201-201: Hard tabs
Column: 1

(MD010, no-hard-tabs)


232-232: Hard tabs
Column: 1

(MD010, no-hard-tabs)


250-250: Hard tabs
Column: 1

(MD010, no-hard-tabs)


410-410: Hard tabs
Column: 1

(MD010, no-hard-tabs)


441-441: Hard tabs
Column: 1

(MD010, no-hard-tabs)


458-458: Hard tabs
Column: 1

(MD010, no-hard-tabs)


697-697: Hard tabs
Column: 1

(MD010, no-hard-tabs)


727-727: Hard tabs
Column: 1

(MD010, no-hard-tabs)


755-755: Hard tabs
Column: 1

(MD010, no-hard-tabs)


789-789: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


809-809: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


914-914: Hard tabs
Column: 1

(MD010, no-hard-tabs)


944-944: Hard tabs
Column: 1

(MD010, no-hard-tabs)


972-972: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1012-1012: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1032-1032: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1137-1137: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1167-1167: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1195-1195: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1235-1235: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1255-1255: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1373-1373: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1403-1403: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1455-1455: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1513-1513: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1533-1533: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1634-1634: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1664-1664: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1691-1691: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1722-1722: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1742-1742: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

source/includes/_ibccorechannel.md

63-63: Hard tabs
Column: 1

(MD010, no-hard-tabs)


94-94: Hard tabs
Column: 1

(MD010, no-hard-tabs)


113-113: Hard tabs
Column: 1

(MD010, no-hard-tabs)


270-270: Hard tabs
Column: 1

(MD010, no-hard-tabs)


301-301: Hard tabs
Column: 1

(MD010, no-hard-tabs)


319-319: Hard tabs
Column: 1

(MD010, no-hard-tabs)


548-548: Hard tabs
Column: 1

(MD010, no-hard-tabs)


579-579: Hard tabs
Column: 1

(MD010, no-hard-tabs)


598-598: Hard tabs
Column: 1

(MD010, no-hard-tabs)


838-838: Hard tabs
Column: 1

(MD010, no-hard-tabs)


869-869: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1111-1111: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1142-1142: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1274-1274: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1305-1305: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1325-1325: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1434-1434: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1465-1465: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1485-1485: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1635-1635: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1666-1666: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1686-1686: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1790-1790: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1821-1821: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1841-1841: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1952-1952: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1983-1983: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2004-2004: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2151-2151: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2182-2182: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2202-2202: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2306-2306: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2337-2337: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2357-2357: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2461-2461: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2492-2492: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2511-2511: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_oracle.md

100-100: Hard tabs
Column: 1

(MD010, no-hard-tabs)


131-131: Hard tabs
Column: 1

(MD010, no-hard-tabs)


205-205: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


225-225: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


337-337: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


357-357: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

source/includes/_spotrpc.md

67-67: Hard tabs
Column: 1

(MD010, no-hard-tabs)


249-249: Hard tabs
Column: 1

(MD010, no-hard-tabs)


480-480: Hard tabs
Column: 1

(MD010, no-hard-tabs)


689-689: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1083-1083: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1287-1287: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1675-1675: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1882-1882: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1883-1883: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1884-1884: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1885-1885: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1886-1886: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1888-1888: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2420-2420: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2421-2421: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2506-2506: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2698-2698: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2928-2928: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_insurance.md

110-110: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


130-130: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


240-240: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


260-260: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


366-366: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


386-386: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

source/includes/_permissions.md

57-57: Hard tabs
Column: 1

(MD010, no-hard-tabs)


88-88: Hard tabs
Column: 1

(MD010, no-hard-tabs)


105-105: Hard tabs
Column: 1

(MD010, no-hard-tabs)


182-182: Hard tabs
Column: 1

(MD010, no-hard-tabs)


213-213: Hard tabs
Column: 1

(MD010, no-hard-tabs)


230-230: Hard tabs
Column: 1

(MD010, no-hard-tabs)


703-703: Hard tabs
Column: 1

(MD010, no-hard-tabs)


734-734: Hard tabs
Column: 1

(MD010, no-hard-tabs)


753-753: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1226-1226: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1257-1257: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1277-1277: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1357-1357: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1388-1388: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1408-1408: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1487-1487: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1518-1518: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1537-1537: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1645-1645: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1676-1676: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1696-1696: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1802-1802: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1833-1833: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1852-1852: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1983-1983: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2014-2014: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2033-2033: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2166-2166: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2197-2197: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2216-2216: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2309-2309: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2340-2340: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2360-2360: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2444-2444: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2475-2475: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2492-2492: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3103-3103: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3134-3134: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3223-3223: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3331-3331: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


3351-3351: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


3492-3492: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3523-3523: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3590-3590: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3688-3688: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


3708-3708: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


3830-3830: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3861-3861: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3907-3907: Hard tabs
Column: 1

(MD010, no-hard-tabs)


3947-3947: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


3967-3967: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


4070-4070: Hard tabs
Column: 1

(MD010, no-hard-tabs)


4101-4101: Hard tabs
Column: 1

(MD010, no-hard-tabs)


4129-4129: Hard tabs
Column: 1

(MD010, no-hard-tabs)


4157-4157: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


4177-4177: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

source/includes/_bank.md

99-99: Hard tabs
Column: 1

(MD010, no-hard-tabs)


129-129: Hard tabs
Column: 1

(MD010, no-hard-tabs)


211-211: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


231-231: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


268-268: Hard tabs
Column: 1

(MD010, no-hard-tabs)


301-301: Hard tabs
Column: 1

(MD010, no-hard-tabs)


465-465: Hard tabs
Column: 1

(MD010, no-hard-tabs)


496-496: Hard tabs
Column: 1

(MD010, no-hard-tabs)


514-514: Hard tabs
Column: 1

(MD010, no-hard-tabs)


668-668: Hard tabs
Column: 1

(MD010, no-hard-tabs)


699-699: Hard tabs
Column: 1

(MD010, no-hard-tabs)


718-718: Hard tabs
Column: 1

(MD010, no-hard-tabs)


819-819: Hard tabs
Column: 1

(MD010, no-hard-tabs)


850-850: Hard tabs
Column: 1

(MD010, no-hard-tabs)


869-869: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1058-1058: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1089-1089: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1108-1108: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1212-1212: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1243-1243: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1261-1261: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1443-1443: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1474-1474: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1492-1492: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1586-1586: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1617-1617: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1635-1635: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1762-1762: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1793-1793: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1811-1811: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2183-2183: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2214-2214: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2233-2233: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2408-2408: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2409-2409: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2410-2410: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2411-2411: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2413-2413: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2414-2414: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2416-2416: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2417-2417: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2418-2418: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2422-2422: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2423-2423: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2454-2454: Hard tabs
Column: 1

(MD010, no-hard-tabs)


2473-2473: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/includes/_wasm.md

57-57: Hard tabs
Column: 1

(MD010, no-hard-tabs)


88-88: Hard tabs
Column: 1

(MD010, no-hard-tabs)


106-106: Hard tabs
Column: 1

(MD010, no-hard-tabs)


231-231: Hard tabs
Column: 1

(MD010, no-hard-tabs)


262-262: Hard tabs
Column: 1

(MD010, no-hard-tabs)


281-281: Hard tabs
Column: 1

(MD010, no-hard-tabs)


482-482: Hard tabs
Column: 1

(MD010, no-hard-tabs)


513-513: Hard tabs
Column: 1

(MD010, no-hard-tabs)


532-532: Hard tabs
Column: 1

(MD010, no-hard-tabs)


638-638: Hard tabs
Column: 1

(MD010, no-hard-tabs)


669-669: Hard tabs
Column: 1

(MD010, no-hard-tabs)


688-688: Hard tabs
Column: 1

(MD010, no-hard-tabs)


803-803: Hard tabs
Column: 1

(MD010, no-hard-tabs)


834-834: Hard tabs
Column: 1

(MD010, no-hard-tabs)


853-853: Hard tabs
Column: 1

(MD010, no-hard-tabs)


930-930: Hard tabs
Column: 1

(MD010, no-hard-tabs)


961-961: Hard tabs
Column: 1

(MD010, no-hard-tabs)


980-980: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1066-1066: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1097-1097: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1115-1115: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1247-1247: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1278-1278: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1296-1296: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1457-1457: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1488-1488: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1506-1506: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1611-1611: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1642-1642: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1661-1661: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1822-1822: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1842-1842: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1968-1968: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


1988-1988: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

🪛 LanguageTool
source/includes/_clients.md

[uncategorized] ~74-~74: Possible missing comma found.
Context: ...ying implementations. Choose V2 for new projects unless you have specific requirements f...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~85-~85: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...ge endpoints: - Human-readable format for: amounts, prices, margins, and notionals...

(RP_COLON)


[uncategorized] ~130-~130: Loose punctuation mark.
Context: ...wChainClientV2(...) ``` - ChainClient: Use this client if you need to interact...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~132-~132: Loose punctuation mark.
Context: ...should migrate to V2. - ChainClientV2: Use this client for all new application...

(UNLIKELY_OPENING_PUNCTUATION)

source/includes/_errors.md

[misspelling] ~1-~1: SDK en errors kunnen samen één (Nederlandstalig) begrip zijn. In dit geval past hier beter “SDK-errors”.
Context: # Cosmos SDK errors ## Authz module <!-- MARKDOWN-AUTO-DO...

(XXX_DING)


[uncategorized] ~360-~360: Als dit een samenstelling is (dus samen naar een enkel ding verwijst), hoort het aaneengeschreven.
Context: ...le> ## Oracle module <!-- MARKDOWN-AUTO-DOCS:START (JSON_TO...

(SAMENSTELLING_EIGENNAAM)

source/includes/_chainstream.md

[uncategorized] ~268-~268: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...t are filtered by the request parameters and it's identified by the block height. <...

(COMMA_COMPOUND_SENTENCE)

source/includes/_evm.md

[uncategorized] ~7-~7: Possible missing comma found.
Context: ...ative EVM implementation. ## Account Queries an Ethereum account **IP rate limit gr...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~153-~153: Possible missing comma found.
Context: ...N-AUTO-DOCS:END --> ## CosmosAccount Queries an Ethereum account's Cosmos Address *...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~872-~872: You might be missing the article “the” here.
Context: ...k of the current block, it's similar to feemarket module's method, but also checks london...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 Shellcheck (0.10.0)
scripts/generate_errors_md.sh

[warning] 13-13: prefix appears unused. Verify use (or export if used externally).

(SC2034)


[warning] 14-14: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 17-17: Declare and assign separately to avoid masking return values.

(SC2155)

scripts/generate_proto_json_files.sh

[warning] 459-459: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 480-480: Declare and assign separately to avoid masking return values.

(SC2155)

🪛 checkmake (0.2.2)
Makefile

[warning] 18-18: Missing required phony target "all"

(minphony)


[warning] 18-18: Missing required phony target "clean"

(minphony)


[warning] 18-18: Missing required phony target "test"

(minphony)

⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: Redirect rules - injective-docs
  • GitHub Check: Header rules - injective-docs
  • GitHub Check: Pages changed - injective-docs
  • GitHub Check: test (2.7)
  • GitHub Check: test (3.2)
🔇 Additional comments (296)
source/index.html.md (1)

39-40: Verify existence of erc20 and evm include files.

Ensure that corresponding include files (e.g. erc20.html.md, evm.html.md or their partials) exist under source/ so the documentation build won’t break.

source/json_tables/cosmos/auth/QueryAccountRequest.json (1)

3-6: Schema definition looks correct. The address parameter is defined with type string, a clear description, and marked as required.

source/includes/_overview.md (1)

72-74: Appropriate use of warning aside. Wrapping the note in <aside class="warning"> enhances visibility and matches the updated documentation style.

source/json_tables/cosmos/auth/QueryAccountAddressByIDRequest.json (1)

1-15: Schema for account address query looks correct

Both id and account_id are properly defined with types, deprecation notes, and "Required" flags. No issues found.

source/json_tables/cosmos/bank/QueryBalanceResponse.json (1)

1-7: Approve new schema addition.

The QueryBalanceResponse.json schema correctly defines balance as types.Coin and aligns with existing Coin.json. No issues detected.

source/json_tables/chain/exchange/queryDerivativeOrderbookResponse.json (1)

2-3: Ensure referenced schema exists
The type TrimmedLimitOrder Array must correspond to an existing JSON schema (TrimmedLimitOrder.json). Please verify that this schema file is present and correctly named.

#!/bin/bash
# Verify that the TrimmedLimitOrder schema file exists under json_tables
fd TrimmedLimitOrder.json source/json_tables
source/json_tables/cosmos/auth/QueryAccountInfoRequest.json (1)

1-7: Add Required field for consistency
Other request schemas include a Required flag. Please add "Required": "Yes" to the parameter object:

  {
    "Parameter": "address",
    "Type": "string",
    "Description": "address is the account address string.",
+   "Required": "Yes"
  }

Likely an incorrect or invalid review comment.

source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringResponse.json (1)

1-7: Schema looks good
The response schema defines the metadata field with a clear description. No changes needed.

source/json_tables/cosmos/auth/QueryAccountsResponse.json (1)

1-12: Approve new JSON schema for QueryAccountsResponse.

The schema aligns with existing patterns and accurately documents the response parameters.

source/json_tables/cosmos/GasInfo.json (1)

1-12: Approve new JSON schema for GasInfo.

This schema correctly defines gas_wanted and gas_used with clear descriptions.

source/json_tables/cosmos/auth/GenesisState.json (1)

1-12: Approve new JSON schema for GenesisState.

The addition correctly outlines the GenesisState structure with required parameters.

source/includes/_changelog.md (1)

3-10: Approve 2025-07-10 changelog entry.

The updates are clearly documented and follow existing formatting conventions.

source/json_tables/cosmos/bank/DenomOwner.json (2)

3-6: Looks good for address.
The address parameter has a clear description and correct type.


8-11: Looks good for balance.
The balance parameter correctly references types.Coin and includes a descriptive explanation.

source/json_tables/chain/errors/tokenfactory.json (1)

1-34: Verify error schema conventions and coverage.

Ensure that:

  1. The keys "Error Code" and "Description" adhere to the project’s naming style (e.g., snake_case vs. title case).
  2. All descriptions consistently end with a period.
  3. Error codes between 7 and 12 are intentionally omitted or add missing definitions if needed.
source/json_tables/cosmos/bank/Params.json (1)

3-6: Verify send_enabled type naming.

Confirm that "SendEnabled array" aligns with the canonical type naming used elsewhere (e.g., "SendEnabled[]").

source/json_tables/cosmos/ABCIMessageLog.json (1)

13-16: ```shell
#!/bin/bash

List a few JSON schema files in source/json_tables/cosmos

echo "Sample JSON files:"
ls source/json_tables/cosmos | head -n 5

Show custom (non-primitive) type references in these JSON tables

echo -e "\nCustom type references in JSON tables:"
rg -n '"Type": "[A-Z]' source/json_tables/cosmos | head -n 20


</details>
<details>
<summary>source/json_tables/cosmos/bank/MsgUpdateParams.json (1)</summary>

`3-13`: **Verify the `Params` type resolution.**
The `params` field is typed as `Params`—ensure this matches the fully qualified protobuf-generated type in the bank module (e.g., `github_com_cosmos_cosmos_sdk_modules_bank_types.Params`).

</details>
<details>
<summary>source/json_tables/cosmos/bank/Balance.json (1)</summary>

`1-12`: **Looks good: JSON schema is well-formed and complete.**  
All parameters have clear types and descriptions, aligning with other Cosmos SDK bank module schemas.

</details>
<details>
<summary>source/json_tables/chain/errors/wasmx.json (1)</summary>

`1-47`: **OK: Error codes are sequential and descriptions are clear.**  
The list covers codes 1 through 11 in order, matching upstream definitions and providing unambiguous descriptions.

</details>
<details>
<summary>source/json_tables/cosmos/bank/DenomUnit.json (1)</summary>

`1-18`: **Good: DenomUnit schema is complete and descriptive.**  
Types and descriptions clearly explain all fields, consistent with other bank module definitions.

</details>
<details>
<summary>source/json_tables/cosmos/bank/QueryBalanceRequest.json (1)</summary>

`1-15`: **Schema for QueryBalanceRequest is accurate.**  
All required flags, types, and descriptions are present and concise.

</details>
<details>
<summary>source/json_tables/cosmos/SearchBlocksResult.json (1)</summary>

`1-32`: **JSON schema is well-structured and consistent.**  
All paginated result fields are documented with clear types and descriptions, matching similar schemas like `SearchTxsResult.json`.

</details>
<details>
<summary>source/json_tables/chain/errors/erc20.json (1)</summary>

`1-38`: **ERC20 error codes are comprehensive and well-documented.**  
Error codes are sorted and descriptions align with module operations.

</details>
<details>
<summary>source/json_tables/cosmos/auth/MsgUpdateParams.json (1)</summary>

`1-14`: **Authentication message schema is clear and complete.**  
Required fields `authority` and `params` are correctly specified with types and descriptions.

</details>
<details>
<summary>source/json_tables/chain/errors/peggy.json (1)</summary>

`1-62`: **Peggy error catalog is complete and well-ordered.**  
Error codes 1–15 are listed sequentially with clear descriptions.

</details>
<details>
<summary>source/includes/_insurancerpc.md (2)</summary>

`18-29`: **Upgrade Python example to `IndexerClient` with JSON pretty-printing**  
The Python snippet correctly imports `json`, switches to `IndexerClient`, and pretty-prints the fetched data.

---

`68-71`: **Standardize JSON indentation in Go example**  
Switching to `json.MarshalIndent(res, "", "\t")` aligns with the tab-indent style used across Go examples.

</details>
<details>
<summary>source/includes/_auctionsrpc.md (5)</summary>

`19-31`: **Upgrade Python `Auction` example to `IndexerClient` with JSON pretty-printing**  
The snippet now imports `json`, uses `IndexerClient`, and wraps the output in `json.dumps(..., indent=2)`.

---

`67-69`: **Use tab indentation in Go `Auction` example**  
Changing to `json.MarshalIndent(res, "", "\t")` ensures consistent JSON formatting.

---

`196-208`: **Upgrade Python `Auctions` example to `IndexerClient` with JSON pretty-printing**  
Similar to the single‐auction example, this correctly imports `json`, switches to `IndexerClient`, and pretty-prints the list response.

---

`242-243`: **Use tab indentation in Go `Auctions` example**  
Standardizing on `"\t"` for `json.MarshalIndent` keeps formatting uniform across modules.

---

`400-416`: **Upgrade Python `InjBurntEndpoint` example to `IndexerClient` with JSON pretty-printing**  
Imports and client instantiation are updated correctly, and the output is pretty-printed via `json.dumps`.

</details>
<details>
<summary>source/includes/_txfees.md (4)</summary>

`21-29`: **Migrate Python example to `AsyncClient` v2**  
The import path and client instantiation are correctly updated to `pyinjective.async_client_v2.AsyncClient`.

---

`48-57`: **Update Go RPC client initialization**  
Removing the `"/websocket"` argument and switching to `rpchttp.New(network.TmEndpoint)` aligns with other chain modules.

---

`88-93`: **Use `NewChainClientV2` for Go chain client**  
Switching to `chainclient.NewChainClientV2` is correct for SDK v1.58.0 compatibility.

---

`105-106`: **Standardize JSON output to tab indentation**  
Changing to `json.MarshalIndent(res, "", "\t")` ensures uniform formatting across Go examples.

</details>
<details>
<summary>source/includes/_ibccoreconnection.md (24)</summary>

`21-31`: **Upgrade Python `Connection` example to `AsyncClient` v2**  
The import path and client instantiation are correctly updated to `pyinjective.async_client_v2.AsyncClient`.

---

`62-63`: **Update Go RPC client initialization for IBC Connection**  
Using `rpchttp.New(network.TmEndpoint)` without `"/websocket"` matches the new RPC pattern.

---

`93-97`: **Use `NewChainClientV2` in Go IBC Connection example**  
Replacing `NewChainClient` with `NewChainClientV2` is correct for the updated SDK.

---

`111-112`: **Standardize JSON output to tab indentation**  
Switching to `json.MarshalIndent(res, "", "\t")` keeps Go examples consistent.

---

`238-245`: **Upgrade Python `Connections` example to `AsyncClient` v2**  
Imports and client instantiation are updated correctly, and the pagination fetch call remains accurate.

---

`282-283`: **Update Go RPC client initialization for IBC Connections**  
The removal of the `"/websocket"` argument is consistent with other chain RPC updates.

---

`313-319`: **Use `NewChainClientV2` in Go IBC Connections example**  
Switching to `chainclient.NewChainClientV2` aligns with SDK v1.58.0.

---

`331-332`: **Standardize JSON output to tab indentation**  
Changing to `json.MarshalIndent(res, "", "\t")` for consistency.

---

`552-559`: **Upgrade Python `ClientConnections` example to `AsyncClient` v2**  
The import path and method call are updated correctly.

---

`593-594`: **Update Go RPC client initialization for IBC ClientConnections**  
Using `rpchttp.New(network.TmEndpoint)` matches the new pattern.

---

`624-629`: **Use `NewChainClientV2` in Go IBC ClientConnections example**  
Replacing `NewChainClient` with `NewChainClientV2` is correct for the updated SDK.

---

`642-643`: **Standardize JSON output to tab indentation**  
Switching to `json.MarshalIndent(res, "", "\t")` for formatting consistency.

---

`695-703`: **Upgrade Python `ConnectionClientState` example to `AsyncClient` v2**  
Import and client instantiation are updated correctly.

---

`741-742`: **Update Go RPC client initialization for ConnectionClientState**  
Using `rpchttp.New(network.TmEndpoint)` without the websocket path matches the new style.

---

`772-776`: **Use `NewChainClientV2` in Go ConnectionClientState example**  
Switching to `chainclient.NewChainClientV2` aligns with SDK updates.

---

`790-791`: **Simplify Go output by printing the raw response**  
The example prints `res` directly instead of marshaling—this matches the other connection examples.

---

`924-931`: **Upgrade Python `ConnectionConsensusState` example to `AsyncClient` v2**  
The import path and method call are updated correctly.

---

`974-975`: **Update Go RPC client initialization for ConnectionConsensusState**  
Using `rpchttp.New(network.TmEndpoint)` conforms to the updated RPC pattern.

---

`1005-1009`: **Use `NewChainClientV2` in Go ConnectionConsensusState example**  
Replacing `NewChainClient` with `NewChainClientV2` is correct.

---

`1026-1027`: **Simplify Go output by printing the raw response**  
Printing `res` directly is consistent with other chain examples.

---

`1086-1094`: **Upgrade Python `ConnectionParams` example to `AsyncClient` v2**  
The import path and method call are updated correctly.

---

`1132-1133`: **Update Go RPC client initialization for ConnectionParams**  
Using `rpchttp.New(network.TmEndpoint)` matches the new standard.

---

`1163-1167`: **Use `NewChainClientV2` in Go ConnectionParams example**  
Switching to `chainclient.NewChainClientV2` aligns with SDK v1.58.0.

---

`1180-1181`: **Standardize JSON output to tab indentation**  
Changing to `json.MarshalIndent(res, "", "\t")` ensures uniform formatting.

</details>
<details>
<summary>source/includes/_broadcaster.md (3)</summary>

`17-18`: **Confirm branch reference update**  
The snippet URLs now point to the `dev` branch instead of `master`, matching the PR’s modernization goal.

---

`28-28`: **Import updated to v2 client**  
Switching from `async_client.AsyncClient` to `async_client_v2.AsyncClient` aligns with the new SDK version.

---

`201-207`: **Use gas heuristics method**  
Updating to `MsgBroadcasterWithPk.new_using_gas_heuristics` for non-simulated fee estimation is correct per the latest SDK.

</details>
<details>
<summary>source/includes/_metarpc.md (11)</summary>

`17-21`: **Adopt `IndexerClient` with JSON pretty-printing**  
Replacing `AsyncClient` with `IndexerClient` and adding `import json` enables `json.dumps(resp, indent=2)` for readable output.

---

`26-27`: **Instantiate with `IndexerClient`**  
`client = IndexerClient(network)` aligns with updated import.

---

`28-28`: **Pretty-print JSON response**  
`print(json.dumps(resp, indent=2))` improves legibility.

---

`68-68`: **Hard tabs intentional**  
The Go example’s use of `"\t"` indentation is deliberate for JSON formatting; ignore markdownlint’s hard-tab warning.

---

`97-101`: **Adopt `IndexerClient` in Version example**  
Imports `json` and `IndexerClient` align Version snippet with modern SDK usage.

---

`106-108`: **Pretty-print Version response**  
`json.dumps` call ensures consistent output formatting.

---

`148-148`: **Hard tabs intentional**  
The Go Version example’s `"\t"` indent is correct; suppress markdownlint’s warning.

---

`207-212`: **Adopt `IndexerClient` in Info example**  
Adding `import json` and using `IndexerClient` makes the Info snippet consistent.

---

`220-220`: **Pretty-print Info response**  
Switching to `json.dumps(resp, indent=2)` provides clear logs.

---

`262-262`: **Hard tabs intentional**  
The Go Info example’s indentation uses tabs intentionally; ignore markdownlint.

---

`325-339`: **Switch to `IndexerClient` for streaming**  
Using `IndexerClient(network)` in StreamKeepAlive aligns with other examples.

</details>
<details>
<summary>source/json_tables/chain/errors/ocr.json (1)</summary>

`63-74`: **Verify presence of Error Code 18**  
The sequence jumps from code 17 to code 19—confirm that code 18 was intentionally omitted and not dropped by the extraction script.

</details>
<details>
<summary>source/json_tables/cosmos/Result.json (1)</summary>

`1-22`: **Schema addition looks good**  
Parameters `data`, `log`, `events`, and `msg_responses` align with Cosmos SDK 0.46 conventions.

</details>
<details>
<summary>source/json_tables/chain/errors/oracle.json (1)</summary>

`67-69`: **Review placeholder entry for Error Code 17**  
`"sample error"` appears to be a placeholder—confirm it wasn’t left in by accident.

</details>
<details>
<summary>source/includes/_portfoliorpc.md (2)</summary>

`39-72`: **Approve: Improved Go JSON formatting**  
The Go snippet now uses `json.MarshalIndent` with tabs for consistent, readable output.

---

`342-387`: **Approve: Go streaming example update**  
The updated Go example correctly indents JSON output and aligns with the latest SDK client usage.

</details>
<details>
<summary>source/json_tables/chain/errors/exchange.json (1)</summary>

`72-73`: **Duplicate oracle type errors**  
Error Code 18 ("unsupported oracle type") and Error Code 33 ("invalid oracle type") describe very similar conditions. Consolidate or clarify the distinction to avoid confusion.  



Also applies to: 132-133

</details>
<details>
<summary>source/json_tables/chain/errors/permissions.json (1)</summary>

`1-63`: **Verify missing Error Code 1**  
The list begins at Error Code 2. Please confirm if Error Code 1 is intentionally omitted or documented elsewhere.

</details>
<details>
<summary>source/includes/_errors.md (1)</summary>

`1-477`: **Auto-generated error documentation looks correct.**

The new comprehensive error tables are properly embedded via the MARKDOWN-AUTO-DOCS placeholders. No manual edits are needed as this file is maintained by automation.

</details>
<details>
<summary>source/includes/_accountsrpc.md (2)</summary>

`18-29`: **Update Python example to use IndexerClient and pretty-print JSON.**

The added `import json`, switch to `IndexerClient`, and `print(json.dumps(..., indent=2))` correctly modernize the snippet and improve output readability.

---

`65-67`: **Use tab indentation in Go JSON output.**

Switching to `json.MarshalIndent(res, "", "\t")` standardizes formatting with a tab character. This is a clear improvement for consistency.

</details>
<details>
<summary>source/includes/_ibccorechannel.md (4)</summary>

`21-21`: **Consistent Python `AsyncClient` import updated**  
All Python examples now correctly reference `AsyncClient` from `pyinjective.async_client_v2`, ensuring alignment with the upgraded SDK.  



Also applies to: 226-226, 503-503, 797-797, 1066-1066, 1231-1231, 1384-1384, 1592-1592, 1745-1745, 1900-1900, 2066-2066, 2261-2261, 2416-2416

---

`63-63`: **Remove `/websocket` suffix in Tendermint RPC client calls**  
Go snippets appropriately call `rpchttp.New(network.TmEndpoint)` without the deprecated `"/websocket"` argument.  



Also applies to: 270-270, 549-549, 839-839, 1111-1111, 1274-1274, 1434-1434, 1635-1635, 1790-1790, 1952-1952, 2151-2151, 2306-2306, 2461-2461

---

`94-94`: **Switch to `NewChainClientV2` for Go client instantiation**  
All Go examples have been updated to use `chainclient.NewChainClientV2`, matching the new SDK version.  



Also applies to: 301-301, 579-579, 869-869, 1142-1142, 1305-1305, 1465-1465, 1666-1666, 1821-1821, 1983-1983, 2182-2182, 2337-2337, 2492-2492

---

`113-113`: **Standardize JSON indentation with tabs**  
Examples now use `json.MarshalIndent(res, "", "\t")` for consistent, tab-based JSON formatting.  



Also applies to: 319-319, 598-598, 1325-1325, 1485-1485, 1686-1686, 1841-1841, 2004-2004, 2202-2202, 2357-2357, 2511-2511

</details>
<details>
<summary>source/includes/_derivativesrpc.md (8)</summary>

`38-69`: **Go example JSON pretty-print**  
Switching to `json.MarshalIndent(res, "", "\t")` provides a nicely formatted output with tabs. This aligns with other Go code snippets.

---

`304-310`: **Go Markets example JSON formatting**  
The updated `json.MarshalIndent(res, "", "\t")` call ensures the Markets response is formatted with tab indentation.

---

`639-647`: **Go StreamMarkets example JSON formatting**  
Using `json.MarshalIndent(res, "", "\t")` in the streaming loop produces readable output for each event.

---

`868-911`: **Go HistoricalOrders JSON pretty-print**  
The use of `json.MarshalIndent(res, "", "\t")` makes the historical orders output easy to read.

---

`1223-1274`: **Go StreamHistoricalOrders JSON formatting**  
Indenting with `"\t"` in `json.MarshalIndent` is consistent and user-friendly for streaming output.

---

`1462-1502`: **Go Trades example JSON pretty-print**  
The updated `json.MarshalIndent(res, "", "\t")` call ensures a clear, indented JSON output for the Trades response.

---

`2202-2246`: **Go Positions example JSON formatting**  
Using `json.MarshalIndent(res, "", "\t")` provides a nicely indented output for fetched positions.

---

`2737-2778`: **Go LiquidablePositions JSON pretty-print**  
Indenting with `"\t"` in `json.MarshalIndent` for Go examples remains consistent and improves readability.

</details>
<details>
<summary>source/includes/_wasmx.md (11)</summary>

`13-14`: **Auto-docs start marker is correctly added.**

The `MARKDOWN-AUTO-DOCS:START` directive for the Python example snippet uses the proper source URL and syntax.

---

`22-23`: **Python imports updated to use v2 client and broadcaster.**

Switching to `pyinjective.async_client_v2.AsyncClient` and `MsgBroadcasterWithPk` aligns with the new SDK broadcast utilities.

---

`30-30`: **Environment variable retrieval is correct.**

Loading `INJECTIVE_PRIVATE_KEY` via `dotenv.load_dotenv()` and `os.getenv` matches the pattern in other examples.

---

`38-40`: **Gas price fetch and adjustment follow updated pattern.**

Calling `client.current_chain_gas_price()` and scaling by 1.1 before broadcast matches the new gas-heuristics workflow.

---

`42-48`: **MsgBroadcasterWithPk instantiation aligns with gas heuristics utility.**

Passing `network`, `private_key`, `gas_price`, `client`, and `composer` to `new_using_gas_heuristics` is correct and simplifies transaction workflow.

---

`50-50`: **PrivateKey conversion is correct.**

Using `PrivateKey.from_hex` and deriving the public key and address follow standard patterns.

---

`69-70`: **Transaction broadcast call is correct.**

Replacing manual simulation/signing/broadcast with `message_broadcaster.broadcast([msg])` is consistent with the new utility.

---

`77-77`: **Gas price update after broadcast is correct.**

Calling `message_broadcaster.update_gas_price` to refresh the heuristic ensures subsequent broadcasts remain valid.

---

`85-86`: **Go example auto-docs start marker is correctly added.**

The `MARKDOWN-AUTO-DOCS:START` directive for the Go snippet references the proper example path and syntax.

---

`205-205`: **BroadcastTxResponse JSON table generation is correct.**

The `JSON_TO_HTML_TABLE` directive for `BroadcastTxResponse.json` uses the proper relative path and table syntax.

---

`213-214`: **TxResponse JSON table generation is correct.**

The `JSON_TO_HTML_TABLE` directive for `TxResponse.json` reflects the updated Cosmos SDK schema and naming conventions.

</details>
<details>
<summary>source/includes/_tendermint.md (8)</summary>

`14-15`: **Ensure snippet URLs reference the `dev` branch**  
The `MARKDOWN-AUTO-DOCS:START` tags for the Python Tendermint examples now point to `raw/dev` instead of `raw/master`, aligning with the branch upgrade.

---

`19-19`: **Import updated to AsyncClient v2**  
The Python example now imports from `pyinjective.async_client_v2`, matching the v1.16 client changes.

---

`56-59`: **Go RPC client initialization simplified**  
The Go snippet replaces the `/websocket` path with a direct `rpchttp.New(network.TmEndpoint)` call, streamlining RPC initialization.

---

`87-92`: **Use `NewChainClientV2` for Go**  
The chain client instantiation is updated to `NewChainClientV2`, reflecting the new client version.

---

`104-107`: **Standardize Go JSON indentation to tabs**  
The output formatting now uses `json.MarshalIndent(..., "\t")` for a tab-indented display.

---

`361-361`: **Add `json` import for better output**  
Brings in `import json` to allow pretty-printing with `json.dumps`.

---

`372-372`: **Use `json.dumps(..., indent=2)` in Python**  
Enhances readability by formatting the latest-block output as JSON.

---

`399-399`: **Network environment switched to `devnet` in Go example**  
The GetLatestBlock Go example now targets `LoadNetwork("devnet", "lb")`, reflecting updated naming conventions.

</details>
<details>
<summary>source/includes/_evm.md (2)</summary>

`1-4`: **Docs structure: New EVM module reference.**

The new `_evm.md` correctly introduces the EVM module with consistent headings and rate-limit info. Good work!

---

`135-143`: **Inconsistent example: Missing `nonce` field.**

The JSON response example (lines 135–143) omits `nonce` even though the response table (lines 145–149) includes it. Please either include `nonce` in the example or remove it from the table to maintain consistency.



Also applies to: 145-149

> Likely an incorrect or invalid review comment.

</details>
<details>
<summary>source/includes/_ibccoreclient.md (3)</summary>

`1-5`: **Overall modernization complete.**

The IBC core client documentation now uniformly uses the v2 async client, updated Go client instantiation, and dev branch URLs. This aligns perfectly with the PR objectives.

---

`21-23`: **Verified Python import updates.**

Updated examples now import `AsyncClient` from `pyinjective.async_client_v2` and `Network` from `pyinjective.core.network`, aligning with the v2 SDK changes.

---

`60-63`: **Go client initialization updated.**

`rpchttp.New(network.TmEndpoint)` no longer requires the `"/websocket"` suffix, and clients are instantiated with `NewChainClientV2`. This matches the PR objectives for modernizing Go SDK usage.

</details>
<details>
<summary>source/includes/_bank.md (12)</summary>

`12-23`: **Update Python example imports to v2 client and add JSON support.**
The example correctly replaces the old `async_client` with `async_client_v2`, brings in `MsgBroadcasterWithPk`, and imports `json` for pretty-printing. These changes streamline the snippet.

---

`28-30`: **Load environment variable for private key.**
Switching to `os.getenv("INJECTIVE_PRIVATE_KEY")` is appropriate for security. Ensure the README documents this requirement.

---

`38-40`: **Fetch and adjust gas price dynamically.**
Retrieving `current_chain_gas_price()` and applying a 1.1 multiplier simplifies gas handling.

---

`42-48`: **Instantiate `MsgBroadcasterWithPk` using gas heuristics.**
The new utility replaces manual tx building and broadcasting, reducing boilerplate.

---

`55-60`: **Construct `MsgSend` via composer.**
The updated `composer.msg_send` call aligns with v2 interfaces and correctly passes parameters.

---

`63-66`: **Broadcast transaction and print formatted output.**
Using `message_broadcaster.broadcast` and `json.dumps` improves readability.

---

`70-70`: **Update gas price post-broadcast.**
Calling `update_gas_price` maintains up-to-date pricing for subsequent TXs.

---

`99-99`: **Initialize CometBFT RPC client without `/websocket`.**
Switching to `rpchttp.New` removes unnecessary path suffix.

---

`129-133`: **Upgrade to `NewChainClientV2`.**
This change aligns Go examples with the latest SDK and simplifies client setup.

---

`205-207`: **Replace static error table with auto-generated `BroadcastTxResponse` schema.**
The JSON schema table now references the Cosmos SDK type directly, ensuring accuracy.

---

`213-217`: **Update `TxResponse` schema to reflect Cosmos SDK v1 types.**
Switching to `int64`, `uint32`, and v1.Event arrays standardizes the doc.

---

`233-236`: **Refresh `ABCIMessageLog` schema reference.**
Now points to the updated Cosmos SDK definition, improving consistency.

</details>
<details>
<summary>source/includes/_oracle.md (19)</summary>

`15-23`: **Update Python example imports for Oracle v2 usage.**
Switching to `async_client_v2`, adding `json`, and bringing in `MsgBroadcasterWithPk` ensures consistency with other modules.

---

`27-30`: **Load private key from environment.**
Using `dotenv` with `os.getenv("INJECTIVE_PRIVATE_KEY")` is secure and clear.

---

`38-40`: **Retrieve and adjust gas price.**
The 1.1× multiplier for `current_chain_gas_price()` remains consistent with recommendations elsewhere.

---

`42-48`: **Instantiate `MsgBroadcasterWithPk` for Oracle TXs.**
Using the gas heuristics broadcaster simplifies the broadcast flow significantly.

---

`60-62`: **Compose `MsgRelayPriceFeedPrice` via composer.**
Parameters correctly passed to the new v2 composer API.

---

`64-67`: **Broadcast Oracle price relay and format output.**
Switching to `broadcast([msg])` and `json.dumps` keeps examples uniform.

---

`72-73`: **Update gas price after Oracle TX.**
Maintains proper gas pricing for potential follow-up calls.

---

`100-100`: **Remove `/websocket` path in RPC client initialization.**
Consistency with other examples is maintained.

---

`131-134`: **Use `NewChainClientV2` in Go.**
Aligns Oracle Go examples with updated SDK usage patterns.

---

`199-202`: **Integrate auto-generated `BroadcastTxResponse` table.**
Ensures schema accuracy for Oracle TX responses.

---

`207-212`: **Standardize `TxResponse` schema in Oracle docs.**
Reflects updated Cosmos SDK naming and types.

---

`228-231`: **Refresh `ABCIMessageLog` reference for Oracle.**
Switches to the latest Cosmos SDK definition.

---

`245-253`: **Update Python imports for `MsgRelayProviderPrices`.**
Matches the pattern used in other modules, importing `json`, `AsyncClient`, and `MsgBroadcasterWithPk`.

---

`257-259`: **Load provider example private key.**
Correctly retrieves `INJECTIVE_PRIVATE_KEY` for the second Oracle message.

---

`267-270`: **Gas price retrieval and adjustment for provider prices.**
Consistent use of gas heuristics across modules.

---

`271-277`: **Instantiate broadcaster for `MsgRelayProviderPrices`.**
Follows the established pattern for simplified tx flow.

---

`288-290`: **Compose `MsgRelayProviderPrices` with correct parameters.**
Syntax matches the new composer API.

---

`293-296`: **Broadcast provider prices and pretty-print result.**
Uniform broadcast and output formatting.

---

`300-301`: **Update gas price post-broadcast for provider prices.**
Ensures gas state remains current.

</details>
<details>
<summary>source/includes/_explorerrpc.md (2)</summary>

`15-47`: **Uniform Python example modernization**  
All Python snippets have been updated to import `json`, replace the deprecated `AsyncClient` with `IndexerClient`, switch to `composer_v2.Composer`, and pretty-print responses using `json.dumps(..., indent=2)`. Changes are consistent and correct across all examples.

---

`78-82`: **Consistent Go snippet formatting**  
Go examples uniformly use `json.MarshalIndent(res, "", "\t")` for tab-indented output and point to the `dev` branch in source URLs, aligning with SDK updates and enhancing readability.

</details>
<details>
<summary>source/includes/_oraclerpc.md (2)</summary>

`18-29`: **Approve Python example modernization**

The Python snippet correctly replaces `AsyncClient` with `IndexerClient`, adds `import json`, and pretty-prints the response with `json.dumps(..., indent=2)`. This aligns with the new client surface and enhances readability.

---

`64-64`: **Approve Go JSON formatting update**

Switching to tab indentation in `json.MarshalIndent(res, "", "\t")` standardizes the output formatting across Go examples.

</details>
<details>
<summary>source/includes/_tokenfactory.md (32)</summary>

`19-19`: **Approve updated Python import**

Switching the import to `from pyinjective.async_client_v2 import AsyncClient` aligns with the new async client package.

---

`58-58`: **Approve Tendermint RPC client change**

Removing the `"/websocket"` suffix in `rpchttp.New(network.TmEndpoint)` simplifies the call and matches the updated RPC client API.

---

`89-89`: **Approve chain client upgrade**

Updating `chainclient.NewChainClient` to `chainclient.NewChainClientV2` ensures use of the latest client with V2 features.

---

`108-108`: **Approve Go JSON indent change**

Using tab indentation in `json.MarshalIndent(res, "", "\t")` matches the style adopted across other Go examples.

---

`165-165`: **Approve Python import update**

The import `from pyinjective.async_client_v2 import AsyncClient` is correctly applied for the `fetch_denoms_from_creator` example.

---

`201-201`: **Approve Tendermint RPC client change**

Removing `"/websocket"` from `rpchttp.New(network.TmEndpoint)` is consistent with other module examples.

---

`232-232`: **Approve chain client upgrade**

Replacing `NewChainClient` with `NewChainClientV2` is correct for the DenomsFromCreator example.

---

`250-250`: **Approve Go JSON indent change**

Switching to tab indentation in `json.MarshalIndent(res, "", "\t")` standardizes formatting.

---

`374-374`: **Approve Python import update**

Using `from pyinjective.async_client_v2 import AsyncClient` is correct for fetching the tokenfactory module state.

---

`410-410`: **Approve Tendermint RPC client change**

Dropping the `"/websocket"` path in `rpchttp.New(network.TmEndpoint)` aligns with the updated RPC client.

---

`441-441`: **Approve chain client upgrade**

Upgrading to `chainclient.NewChainClientV2` is applied correctly for the TokenfactoryModuleState example.

---

`459-459`: **Approve Go JSON indent change**

Using `"\t"` in `json.MarshalIndent` maintains consistency in the Go examples.

---

`622-622`: **Approve Python import update**

Changing to `from pyinjective.async_client_v2 import AsyncClient` is correct for the CreateDenom example.

---

`697-697`: **Approve Tendermint RPC client change**

Removing the `"/websocket"` suffix in `rpchttp.New(network.TmEndpoint)` is consistent with other examples.

---

`727-727`: **Approve chain client upgrade**

Upgrading to `chainclient.NewChainClientV2` reflects the new client instantiation pattern.

---

`755-755`: **Approve Go JSON indent change**

Using `"\t"` in `json.MarshalIndent(response, "", "\t")` keeps formatting consistent.

---

`837-837`: **Approve Python import update**

The import `from pyinjective.async_client_v2 import AsyncClient` is correct for the MsgMint example.

---

`914-914`: **Approve Tendermint RPC client change**

Removing `"/websocket"` from the call to `rpchttp.New` is correct.

---

`944-944`: **Approve chain client upgrade**

The switch to `NewChainClientV2` is implemented correctly for the MsgMint go example.

---

`972-972`: **Approve Go JSON indent change**

Indenting JSON output with tabs is consistent across the documentation.

---

`1060-1060`: **Approve Python import update**

The import for `AsyncClient` in the MsgBurn example is up to date.

---

`1137-1137`: **Approve Tendermint RPC client change**

Dropping `"/websocket"` in `rpchttp.New(network.TmEndpoint)` is correct.

---

`1167-1167`: **Approve chain client upgrade**

Switching to `NewChainClientV2` is correctly applied in the Burn example.

---

`1195-1195`: **Approve Go JSON indent change**

Tab-based indentation in `json.MarshalIndent` is consistent.

---

`1303-1303`: **Approve broadcaster abstraction**

The use of `new_using_gas_heuristics` in the MsgSetDenomMetadata example aligns with the new gas management abstraction.

---

`1373-1373`: **Approve Tendermint RPC client change**

Removing `"/websocket"` in the Go example is consistent.

---

`1403-1403`: **Approve chain client upgrade**

The transition to `NewChainClientV2` is correctly reflected for SetDenomMetadata.

---

`1455-1455`: **Approve Go JSON indent change**

Using tabs in `json.MarshalIndent` maintains the style used in other code samples.

---

`1581-1581`: **Approve broadcaster abstraction**

Using `new_using_gas_heuristics` for MsgChangeAdmin is correct and consistent.

---

`1634-1634`: **Approve Tendermint RPC client change**

The removal of `"/websocket"` is consistently applied.

---

`1664-1664`: **Approve chain client upgrade**

Upgrading to `NewChainClientV2` is implemented correctly in the change admin example.

---

`1691-1691`: **Approve Go JSON indent change**

Tab-based JSON indentation is consistent with the rest of the documentation.

</details>
<details>
<summary>source/includes/_chainstream.md (16)</summary>

`14-14`: **Skip auto-generated docs marker**  
This marker (`<!-- MARKDOWN-AUTO-DOCS:START ... -->`) is for tooling and requires no manual edits.

---

`22-22`: **Updated to v2 Python client**  
The import of `AsyncClient` from `pyinjective.async_client_v2` correctly reflects the upgrade to the v2 SDK.

---

`42-42`: **Switch to asynchronous composer retrieval**  
Awaiting `client.composer()` aligns with the async v2 client design.

---

`98-98`: **Skip auto-generated Go docs marker**  
This marker (`<!-- MARKDOWN-AUTO-DOCS:START ... -->`) is inserted by the doc automation and doesn’t need manual changes.

---

`107-107`: **Import updated to v2 Go types**  
Using `chain/stream/types/v2` matches the upgraded v2 client example.

---

`126-126`: **Instantiate v2 Go chain client**  
Switching to `NewChainClientV2` correctly initializes the v2 client.

---

`141-141`: **Define v2 StreamRequest**  
Initializing `chainstreamv2.StreamRequest` is consistent with the v2 API contract.

---

`145-145`: **Spot orders filter is correct**  
The parameters match the Python snippet and v2 API.

---

`149-149`: **Derivative orders filter is correct**  
This aligns with the intended v2 trades endpoint configuration.

---

`153-153`: **Spot trades filter is correct**  
Parameters and wildcard usage correctly reflect v2 expectations.

---

`157-157`: **Subaccount deposits filter is correct**  
Matches the Python example’s filter semantics.

---

`160-160`: **Derivative orderbooks filter is correct**  
Consistent with v2 orderbook streaming fields.

---

`163-163`: **Spot orderbooks filter is correct**  
Parameters are consistent with the Python example.

---

`166-166`: **Positions filter is correct**  
Matches the intended v2 positions streaming behavior.

---

`169-169`: **Derivative trades filter is correct**  
Properly configured to stream derivative trade events.

---

`170-170`: **Oracle price filter is correct**  
The `Symbol` field matches the Python `symbols` parameter, following language conventions.

</details>
<details>
<summary>source/includes/_permissions.md (16)</summary>

`20-21`: **Example update: AsyncClient v2 and ChainClientV2 usage**  
Imports migrated to `pyinjective.async_client_v2`; Tendermint RPC client simplified (removed `"/websocket"`); examples now use `NewChainClientV2`; JSON output standardized with tab indentation.  



Also applies to: 57-57, 88-92, 105-106

---

`145-146`: **Refreshed “Namespaces” example with v2 clients**  
Python snippet now imports `AsyncClient` from v2; Go example removes explicit websocket path; uses `NewChainClientV2`; JSON indent aligned to tabs.  



Also applies to: 182-182, 213-217, 230-231

---

`665-667`: **Updated “Namespace” example to v2 SDK**  
Python import switched to `async_client_v2`; Go example instantiates RPC via `rpchttp.New`, constructs a v2 chain client, and prints JSON with tab-based indentation.  



Also applies to: 703-705, 734-738, 753-753

---

`1187-1188`: **Migrated “RolesByActor” example to v2**  
Example code now imports `AsyncClient` v2; Go removes redundant path, uses `NewChainClientV2`, and standardizes JSON output with tabs.  



Also applies to: 1226-1226, 1257-1261, 1277-1277

---

`1318-1319`: **Upgraded “ActorsByRole” snippet for v2 clients**  
Python import reflects v2 client; Go example simplifies RPC URL, invokes `NewChainClientV2`, and formats JSON with tab indent.  



Also applies to: 1357-1357, 1388-1392, 1408-1408

---

`1450-1451`: **Refactored “RoleManagers” example to v2**  
Imports updated to v2 AsyncClient; Go RPC method streamlined; new v2 chain client instantiation; JSON prints now use tabs.  



Also applies to: 1487-1487, 1518-1522, 1537-1537

---

`1607-1608`: **Modernized “RoleManager” example with v2**  
Examples now import AsyncClient v2; Go RPC initialization simplified; uses `NewChainClientV2`; JSON indentation standardized.  



Also applies to: 1645-1645, 1676-1680, 1696-1696

---

`1765-1766`: **Streamlined “PolicyStatuses” query to v2**  
Python code imports the v2 client; Go example drops `"/websocket"` path, calls `NewChainClientV2`, and prints JSON with tab indent.  



Also applies to: 1802-1802, 1833-1837, 1852-1852

---

`1946-1947`: **Rolled out v2 SDK in “PolicyManagerCapabilities” examples**  
Python snippet updated to AsyncClient v2; Go example uses simplified RPC client, `NewChainClientV2`, and consistent JSON tabs.  



Also applies to: 1983-1983, 2014-2018, 2033-2033

---

`2128-2129`: **Enhanced “Vouchers” example for v2**  
Imports now reference `async_client_v2`; Go RPC instantiation simplified; chain client upgraded to v2; JSON output indentation standardized.  



Also applies to: 2166-2166, 2197-2201, 2216-2216

---

`2271-2272`: **Adjusted “Voucher” example to v2 SDK**  
Python code uses `AsyncClient_v2`; Go code streamlines RPC client setup; employs `NewChainClientV2`; JSON indent uses tabs.  



Also applies to: 2309-2309, 2340-2344, 2360-2360

---

`2407-2408`: **Updated module state query to v2**  
Examples import the v2 client; Go snippet simplifies RPC instantiation, uses `NewChainClientV2`, and prints JSON with tab-based indent.  



Also applies to: 2444-2444, 2475-2479, 2492-2493

---

`2974-2975`: **Refreshed CreateNamespace message examples**  
Python snippet now uses `AsyncClient_v2` and `MsgBroadcasterWithPk`; Go example constructs a v2 chain client and formats JSON response with tabs.  



Also applies to: 3134-3137, 3223-3223

---

`3379-3380`: **Migrated UpdateNamespace examples to v2**  
Python imports AsyncClient v2; Go code initializes RPC via `rpchttp.New`, builds client with `NewChainClientV2`, and aligns JSON indent to tabs.  



Also applies to: 3492-3492, 3523-3526, 3590-3590

---

`3736-3737`: **Upgraded UpdateActorRoles examples for v2**  
Examples switch to `pyinjective.async_client_v2`; Go code simplifies RPC setup, uses `NewChainClientV2`, and adopts tab indentation for JSON.  



Also applies to: 3830-3830, 3861-3864, 3907-3907

---

`3995-3996`: **Aligned ClaimVoucher examples with v2 SDK**  
Python uses v2 AsyncClient; Go snippet removes legacy path, instantiates `NewChainClientV2`, and prints JSON with tabs for consistency.  



Also applies to: 4070-4070, 4101-4104, 4129-4129

</details>
<details>
<summary>source/includes/_insurance.md (10)</summary>

`12-14`: **Skip autogenerated doc markers.**  
These `MARKDOWN-AUTO-DOCS` tags are managed by the pipeline and require no manual changes.

---

`16-16`: **Import `json` is appropriate.**  
Including `json` to format the transaction response is correct.

---

`21-22`: **Modernized imports for v2 client and broadcaster.**  
Switching to `pyinjective.async_client_v2.AsyncClient` and `MsgBroadcasterWithPk` aligns with the new SDK abstraction.

---

`39-41`: **Buffer gas price with headroom.**  
Fetching `current_chain_gas_price` and adding a 10% buffer via `int(gas_price * 1.1)` is a sound approach to avoid underpricing.

---

`43-49`: **Instantiate broadcaster with gas heuristics.**  
Using `MsgBroadcasterWithPk.new_using_gas_heuristics` simplifies fee estimation and broadcasting.

---

`51-51`: **Key derivation is correct.**  
Converting the hex key to a `PrivateKey` and deriving the public key/address is implemented properly.

---

`58-61`: **Doc table mismatch for `oracle_type`.**  
The example now uses a string (`"Band"`), but the parameter table below still lists `oracle_type` as `Integer`. Please update the table to reflect the new string-based oracle type.  



> Likely an incorrect or invalid review comment.

---

`67-67`: **Transaction broadcast is streamlined.**  
Calling `broadcast([msg])` on the broadcaster directly matches the new pattern.

---

`69-69`: **JSON output formatting is clear.**  
Using `json.dumps(..., indent=2)` produces readable output for end users.

---

`74-74`: **Dynamic gas price update.**  
Updating the broadcaster’s gas price before subsequent broadcasts maintains consistency if prices change mid-script.

</details>
<details>
<summary>source/includes/_ibctransfer.md (5)</summary>

`22-22`: **Consistent Python client import upgrade.**  
All Python examples now import `AsyncClient` from `pyinjective.async_client_v2`, ensuring alignment with the modern SDK.  



Also applies to: 174-174, 350-350, 485-485, 619-619

---

`69-69`: **Removed `/websocket` argument in Go RPC client.**  
Switching to `rpchttp.New(network.TmEndpoint)` simplifies setup and matches upstream client changes.  



Also applies to: 218-218, 393-393, 507-507, 660-660, 856-856

---

`100-100`: **Upgraded to `NewChainClientV2`.**  
Across all Go examples, instantiation now uses `NewChainClientV2`, reflecting the SDK v2 client API.  



Also applies to: 248-248, 424-424, 558-558, 691-691, 886-886

---

`121-121`: **Standardized JSON formatting to tabs.**  
Formatting output with `json.MarshalIndent(..., "\t")` across all Go examples ensures consistency.  



Also applies to: 266-266, 444-444, 577-577, 709-709, 925-925

---

`800-803`: **Dynamic token amount calculation in Python.**  
Introducing `token_decimals`, calculating `transfer_amount`, and using `composer.coin(...)` correctly adapts for varying token precisions.

</details>
<details>
<summary>scripts/extract_errors.sh (6)</summary>

`1-5`: **Proper script initialization.**  
Shebang and `set -e` ensure the script runs with strict error handling.

---

`7-19`: **Clear usage function.**  
The `usage()` helper provides concise instructions and argument descriptions.

---

`21-24`: **Argument validation is in place.**  
Ensuring exactly two arguments are provided before proceeding prevents misconfiguration.

---

`35-38`: **Dependency check for `jq`.**  
Verifying `jq` availability up front avoids silent failures later in the pipeline.

---

`67-107`: **Module processing routine.**  
`process_modules` correctly iterates module directories, merges root and `types` errors, and writes per-module JSON. Handling of missing modules is appropriate.

---

`110-124`: **Output directory setup and invocation.**  
Cleaning existing directories and orchestrating extraction for both Cosmos SDK and Injective Core is organized and clear.

</details>
<details>
<summary>source/includes/_spotrpc.md (17)</summary>

`19-30`: **Update Python Market example to use IndexerClient with pretty JSON output**

The example now correctly imports `json`, instantiates `IndexerClient` instead of the deprecated async client, and prints the response with `json.dumps(..., indent=2)` for readability.

---

`67-67`: **Use tab-based indentation in Go Market example**

The Go snippet now uses `json.MarshalIndent(res, "", "\t")` for consistent, tab-indented JSON output.

---

`189-204`: **Modernize Python Markets example**

Imports are updated to include `json`, instantiation uses `IndexerClient`, and the response is pretty-printed via `json.dumps(..., indent=2)`.

---

`249-249`: **Standardize Go Markets formatting with tab indent**

Switched `json.MarshalIndent` to use `"\t"` for consistent JSON indentation across examples.

---

`404-423`: **Refresh StreamMarkets Python example**

Replaced `AsyncClient` with `IndexerClient`, added the appropriate import, and now outputs formatted JSON using `json.dumps(..., indent=2)`.

---

`480-480`: **Apply tab indent for Go StreamMarkets output**

The example now uses `json.MarshalIndent(res, "", "\t")` for tab-based indentation.

---

`617-639`: **Update HistoricalOrders Python example**

Switched to `IndexerClient`, imported `json`, and prints the fetched orders with pretty-printed JSON.

---

`690-690`: **Pretty-print HistoricalOrders Go output**

Updated to use `json.MarshalIndent(res, "", "\t")` for consistent tab-indented JSON formatting.

---

`1222-1243`: **Improve Trades Python example**

Example now imports `json`, uses `IndexerClient`, and formats the returned trades via `json.dumps(..., indent=2)`.

---

`1287-1287`: **Consistent JSON indent in Go TradesV2 example**

Using `"\t"` in `json.MarshalIndent` aligns with other Go snippets.

---

`997-1013`: **Modernize StreamHistoricalOrders Python example**

Refactored to import and instantiate `IndexerClient`, and outputs JSON with `json.dumps(..., indent=2)`.

---

`1083-1083`: **Tab indent for Go StreamHistoricalOrders output**

Standardized JSON indentation using `"\t"` in `json.MarshalIndent`.

---

`1835-1850`: **Revise OrderbooksV2 Python example**

Added `json` import, switched to `IndexerClient`, included explicit `depth` parameter, and pretty-printed the orderbooks.

---

`1882-1888`: **Update OrderbooksV2 Go example**

Introduced `depth := int32(10)` in the request and updated output formatting to use `"\t"` for JSON indentation.

---

`2014-2031`: **Refresh StreamOrderbookSnapshot Python example**

Now imports and uses `IndexerClient` for streaming snapshot updates, retaining the existing callback handlers.

---

`2222-2270`: **Adjust StreamOrderbookUpdate Python example**

The snapshot loader signature is updated to accept `IndexerClient`; the fetch call now includes `depth=0`, and client instantiation reflects the new client class.

---

`2420-2421`: **Synchronize Go StreamOrderbookUpdate with snapshot depth**

Added `depth := int32(0)` and ensured the initial snapshot fetch uses the same depth parameter, matching the Python example.  



Also applies to: 2506-2506

</details>
<details>
<summary>source/includes/_auction.md (3)</summary>

`12-71`: **Excellent modernization of Python examples!**

The Python example has been successfully updated to use the latest SDK patterns:
- Updated imports to use `async_client_v2.AsyncClient` and `MsgBroadcasterWithPk`
- Added proper gas price management with 10% buffer
- Simplified transaction broadcasting using the new broadcaster utility
- Added JSON formatting for better output readability

These changes align well with the broader SDK modernization effort across the documentation.

---

`73-174`: **Go client updates look good!**

The Go example correctly:
- Updates Tendermint RPC client initialization to remove the `/websocket` suffix
- Uses `NewChainClientV2` instead of the older `NewChainClient`
- Maintains proper error handling and gas management patterns

This is consistent with the V2 client migration strategy mentioned in the PR objectives.

---

`186-242`: **JSON schema updates are properly aligned!**

The schema references have been correctly updated to use the standardized Cosmos SDK schemas:
- `cosmos/Coin.json`
- `cosmos/tx/BroadcastTxResponse.json` 
- `cosmos/TxResponse.json`
- `cosmos/ABCIMessageLog.json`

This standardization improves consistency across all module documentation.

</details>
<details>
<summary>source/includes/_erc20.md (1)</summary>

`1-924`: **Comprehensive ERC20 module documentation!**

This new documentation file provides excellent coverage of the ERC20 module's functionality:
- Clear documentation for all three query endpoints with practical examples
- Complete transaction message documentation for token pair management
- Consistent use of updated SDK client patterns (V2 clients, MsgBroadcasterWithPk)
- Proper JSON schema references aligned with the Cosmos SDK standards
- Good structure following the established documentation patterns

The addition of this module documentation significantly enhances the API reference coverage.

</details>
<details>
<summary>source/includes/_clients.md (1)</summary>

`31-173`: **Excellent client version documentation!**

This section provides clear guidance on choosing between V1 and V2 clients:
- Well-structured explanations of the differences between AsyncClient and AsyncClientV2
- Clear format difference explanations (chain vs human-readable)
- Proper deprecation notice for V1 client regarding new endpoints
- Good coverage of both Python and Go client usage patterns
- Helpful Markets Assistant documentation with version compatibility notes

This will help developers make informed decisions about which client version to use.

</details>
<details>
<summary>source/includes/_authz.md (3)</summary>

`14-93`: **Python examples properly modernized!**

The authz module examples have been successfully updated to use:
- `async_client_v2.AsyncClient` for the latest client functionality
- `MsgBroadcasterWithPk` for simplified transaction broadcasting
- Updated message type URLs to use v2 exchange endpoints (`/injective.exchange.v2.*`)
- Proper JSON formatting for transaction responses

These changes are consistent with the SDK modernization effort across all modules.

---

`95-200`: **Go examples updated correctly!**

The Go examples properly implement the V2 client patterns:
- Tendermint RPC client initialization without `/websocket` suffix
- Usage of `NewChainClientV2` instead of the legacy client
- Updated import for v2 exchange types (`exchangev2types`)
- Proper tab indentation for JSON output formatting

This maintains consistency with the broader client migration strategy.

---

`252-284`: **JSON schema references properly standardized!**

All transaction response schemas have been correctly updated to use the standardized Cosmos SDK schemas:
- `cosmos/tx/BroadcastTxResponse.json`
- `cosmos/TxResponse.json` 
- `cosmos/ABCIMessageLog.json`

This improves consistency and accuracy across the documentation.



Also applies to: 545-577, 777-809

</details>
<details>
<summary>scripts/generate_proto_json_files.sh (2)</summary>

`1-4`: **Robust shebang and strict mode enabled**  
Enabling `set -euo pipefail` ensures the script exits on errors, undefined variables, and pipeline failures.

---

`535-538`: **Verify correct path for Cosmos SDK types directory**  
The script checks `"$1/types"`, but `init_config` does not set a corresponding `COSMOS_TYPES_PATH`. Confirm this path matches your repository layout or update the invocation to use the correct variable (e.g., `COSMOS_MODULES_PATH`).

</details>
<details>
<summary>source/includes/_wasm.md (23)</summary>

`15-21`: **Python example import updated to AsyncClient v2**  
Examples now import `AsyncClient` from `pyinjective.async_client_v2`, aligning with the updated SDK client version.

---

`37-38`: **Add Go example snippet marker**  
Introduced the `MARKDOWN-AUTO-DOCS:START` tag for the Go example to ensure automated snippet inclusion.

---

`188-190`: **Update Python example imports**  
Examples now import `AsyncClient` from `pyinjective.async_client_v2` and include `PaginationOption`.

---

`209-210`: **Add Go example snippet marker**  
Added `MARKDOWN-AUTO-DOCS:START` for the second Wasm query example in Go.

---

`439-441`: **Update Python example imports**  
Switch to `pyinjective.async_client_v2` and add the `PaginationOption` import for the third Wasm query example.

---

`460-461`: **Add Go example snippet marker**  
Inserted `MARKDOWN-AUTO-DOCS:START` for the third Go example.

---

`595-597`: **Update Python example imports**  
Examples now import `AsyncClient` from `pyinjective.async_client_v2`, `PaginationOption`, and `Network`.

---

`616-617`: **Add Go example snippet marker**  
Added `MARKDOWN-AUTO-DOCS:START` for the fourth Go example.

---

`766-767`: **Update Python example imports**  
Now using `AsyncClient` from `pyinjective.async_client_v2` and `Network` for the fifth Wasm query example.

---

`784-785`: **Add Go example snippet marker**  
Inserted `MARKDOWN-AUTO-DOCS:START` for the fifth Go example.

---

`893-895`: **Update Python example imports**  
Switch to `AsyncClient` from `pyinjective.async_client_v2` and `Network` for the sixth Wasm query example.

---

`910-911`: **Add Go example snippet marker**  
Added `MARKDOWN-AUTO-DOCS:START` for the sixth Go example.

---

`1027-1029`: **Update Python example imports**  
Now importing `base64`, `AsyncClient` from `pyinjective.async_client_v2`, and `Network`.

---

`1047-1048`: **Add Go example snippet marker**  
Inserted `MARKDOWN-AUTO-DOCS:START` for the seventh Go example.

---

`1205-1207`: **Update Python example imports**  
Examples now import `AsyncClient` from `pyinjective.async_client_v2`, `PaginationOption`, and `Network`.

---

`1225-1226`: **Add Go example snippet marker**  
Added `MARKDOWN-AUTO-DOCS:START` for the eighth Go example.

---

`1415-1417`: **Update Python example imports**  
Switched to `AsyncClient` from `pyinjective.async_client_v2` and added `PaginationOption` for the ninth Wasm query example.

---

`1435-1436`: **Add Go example snippet marker**  
Inserted `MARKDOWN-AUTO-DOCS:START` for the ninth Go example.

---

`1568-1570`: **Update Python example imports**  
Switched to `AsyncClient` from `pyinjective.async_client_v2` and `PaginationOption` for the tenth Wasm query example.

---

`1589-1590`: **Add Go example snippet marker**  
Added `MARKDOWN-AUTO-DOCS:START` for the tenth Go example.

---

`1718-1725`: **Refactor Python MsgExecuteContract example**  
Now uses `MsgBroadcasterWithPk` for streamlined transaction broadcasting, updates imports (`json`, `os`, `AsyncClient` v2), and removes manual build/sign/broadcast steps.

---

`1741-1751`: **Implement gas heuristics with MsgBroadcasterWithPk**  
Fetches the chain gas price, applies a 1.1× multiplier, and initializes the broadcaster via `new_using_gas_heuristics`.

---

`1767-1783`: **Broadcast with MsgBroadcasterWithPk and update gas price**  
Uses `broadcast()` to send messages and `update_gas_price()` for subsequent transactions, simplifying the flow.

</details>
<details>
<summary>Makefile (5)</summary>

`21-23`: **Verify recipe lines are indented with tabs**  
Make requires tabs for command indentation. Ensure the `markdown-autodocs` invocation is prefixed by a tab character, not spaces.

---

`25-30`: **Error extraction target scope**  
`_update-errors` correctly invokes `extract_errors.sh` on the Cosmos SDK and Injective Core repos per PR objectives. Confirm whether the indexer also defines errors that need extraction; otherwise, this matches the intended scope.

---

`31-34`: **Proto JSON generation invocation looks solid**  
The `_update-proto` target passes all three cloned directories to `generate_proto_json_files.sh`, ensuring the docs reflect the latest schemas.

---

`41-45`: **Symmetric pattern for proto-JSON updates**  
`update-proto-json` mirrors the errors target and follows the same structure. This consistency aids maintainability.

---

`56-63`: **Cloning repos with shallow checkout is efficient**  
The `clone-repos` target uses `--depth 1` and the correct branches. You may optionally check each clone’s exit status to catch failures early, but this is generally good practice.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment on lines +3 to +6
"Parameter": "accounts",
"Type": "types.Any array",
"Description": ""
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Use a consistent array type notation and provide a description.
Replace "types.Any array" with a canonical array notation (e.g. "types.Any[]"), fill in the Description (e.g. "accounts defines the list of module accounts."), and add a Required key.

🤖 Prompt for AI Agents
In source/json_tables/cosmos/auth/QueryModuleAccountsResponse.json around lines
3 to 6, replace the type notation "types.Any array" with the canonical array
notation "types.Any[]". Add a meaningful description such as "accounts defines
the list of module accounts." and include a "Required" key to indicate if this
parameter is mandatory.

Comment on lines +3 to +6
"Parameter": "key",
"Type": "string",
"Description": ""
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Provide descriptions and required markers for schema fields.
Both key and value have empty Description fields and lack a Required attribute. Please supply meaningful descriptions (e.g. "attribute key" / "attribute value") and indicate whether each field is required.

🤖 Prompt for AI Agents
In source/json_tables/cosmos/Attribute.json lines 3 to 6, the fields "key" and
"value" have empty Description fields and no Required attribute. Add meaningful
descriptions such as "attribute key" for the key field and "attribute value" for
the value field. Also, add a Required attribute to each field indicating whether
it is mandatory or optional based on the schema requirements.

Comment on lines +3 to +6
"Parameter": "address_string",
"Type": "string",
"Description": ""
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fill in the Description and mark requirement.
The address_string field lacks a description and a Required flag. Please document its semantics (e.g. "converted Bech32 address string") and indicate if it's mandatory.

🤖 Prompt for AI Agents
In source/json_tables/cosmos/auth/AddressBytesToStringResponse.json around lines
3 to 6, the "address_string" field is missing a description and a "Required"
flag. Add a clear description such as "converted Bech32 address string" to
explain its semantics, and include a "Required" field set to true or false
depending on whether this field is mandatory.

Comment on lines +3 to +11
"Parameter": "address",
"Type": "string",
"Description": ""
},
{
"Parameter": "coins",
"Type": "github_com_cosmos_cosmos_sdk_types.Coins",
"Description": ""
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Add missing descriptions and Required flags. Both address and coins entries have empty "Description" values and lack a "Required" property. Please supply meaningful descriptions and include "Required": "Yes" (or "No" if appropriate) for each field to maintain schema consistency.

🤖 Prompt for AI Agents
In source/json_tables/cosmos/bank/Input.json lines 3 to 11, the "address" and
"coins" entries have empty "Description" fields and are missing the "Required"
property. Add meaningful descriptions explaining the purpose of each parameter
and include a "Required" property with the value "Yes" or "No" as appropriate to
indicate if the field is mandatory, ensuring schema consistency.

Comment on lines +3 to +11
"Parameter": "denom",
"Type": "string",
"Description": ""
},
{
"Parameter": "amount",
"Type": "cosmossdk_io_math.LegacyDec",
"Description": ""
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Add missing descriptions and Required flags. The denom and amount fields currently have empty "Description" values and no "Required" property. Please add descriptive text and include "Required": "Yes" for each to align with other JSON schema files.

🤖 Prompt for AI Agents
In source/json_tables/cosmos/DecCoin.json around lines 3 to 11, the "denom" and
"amount" fields lack descriptions and the "Required" property. Add meaningful
descriptions explaining what each field represents and include "Required": "Yes"
for both fields to match the schema conventions used elsewhere.

Comment on lines +993 to +1001
No parameters

### Response Parameters
> Response Example:
``` json

```

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Missing example for BaseFee response.

The JSON example block is empty but the response table defines base_fee. Add a representative example or remove the empty block.

🤖 Prompt for AI Agents
In source/includes/_evm.md around lines 993 to 1001, the JSON example block for
the `BaseFee` response is empty while the response table defines `base_fee`. Add
a representative JSON example showing a typical `base_fee` value to illustrate
the response, or if no example is available, remove the empty JSON block
entirely to avoid confusion.

Comment on lines +420 to +432

usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7"
res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20)
if err != nil {
fmt.Println(err)
}

str, _ := json.MarshalIndent(res, "", "\t")
fmt.Print(string(str))

}
```
<!-- MARKDOWN-AUTO-DOCS:END -->
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix function call mismatch in Go example.

The Go example calls FetchTokenPairByDenom with an ERC20 contract address, but this function should be called with a bank denomination. This is inconsistent with the endpoint purpose.

Apply this diff to fix the function call:

-	res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20)
+	res, err := chainClient.FetchTokenPairByERC20Address(ctx, usdtERC20)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7"
res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20)
if err != nil {
fmt.Println(err)
}
str, _ := json.MarshalIndent(res, "", "\t")
fmt.Print(string(str))
}
```
<!-- MARKDOWN-AUTO-DOCS:END -->
usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7"
res, err := chainClient.FetchTokenPairByERC20Address(ctx, usdtERC20)
if err != nil {
fmt.Println(err)
}
str, _ := json.MarshalIndent(res, "", "\t")
fmt.Print(string(str))
}
🤖 Prompt for AI Agents
In source/includes/_erc20.md around lines 420 to 432, the Go example incorrectly
calls FetchTokenPairByDenom with an ERC20 contract address, but this function
expects a bank denomination. To fix this, replace the ERC20 contract address
argument with the correct bank denomination string when calling
FetchTokenPairByDenom, ensuring the argument matches the function's intended
input.

Comment on lines +270 to +282
ctx := context.Background()

res, err := chainClient.FetchTokenPairByERC20Address(ctx, "usdt")
if err != nil {
fmt.Println(err)
}

str, _ := json.MarshalIndent(res, "", "\t")
fmt.Print(string(str))

}
```
<!-- MARKDOWN-AUTO-DOCS:END -->
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix function call mismatch in Go example.

The Go example calls FetchTokenPairByERC20Address with a parameter that appears to be a bank denom ("usdt"), but this function should be called with an ERC20 contract address. This is inconsistent with the endpoint purpose.

Apply this diff to fix the function call:

-	res, err := chainClient.FetchTokenPairByERC20Address(ctx, "usdt")
+	res, err := chainClient.FetchTokenPairByDenom(ctx, "usdt")
🤖 Prompt for AI Agents
In source/includes/_erc20.md around lines 270 to 282, the Go example incorrectly
calls FetchTokenPairByERC20Address with a bank denom string "usdt" instead of an
ERC20 contract address. To fix this, replace the argument "usdt" with a valid
ERC20 contract address string that matches the function's expected input,
ensuring the example aligns with the endpoint's purpose.

Comment on lines +22 to +25
# Check arguments
if [ $# -ne 3 ]; then
usage
fi
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Validate input repository paths
Only argument count is checked today; add verification that $1, $2, and $3 exist as directories to surface missing or incorrect paths early.

Apply:

 if [ $# -ne 3 ]; then
     usage
 fi
+for path in "$@"; do
+  if [ ! -d "$path" ]; then
+    echo "Error: Directory not found: $path" >&2
+    usage
+  fi
+done
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Check arguments
if [ $# -ne 3 ]; then
usage
fi
# Check arguments
if [ $# -ne 3 ]; then
usage
fi
for path in "$@"; do
if [ ! -d "$path" ]; then
echo "Error: Directory not found: $path" >&2
usage
fi
done
🤖 Prompt for AI Agents
In scripts/generate_proto_json_files.sh around lines 22 to 25, currently only
the number of arguments is checked. Add checks to verify that each of the three
arguments ($1, $2, and $3) exists and is a directory. Use conditional statements
to test if each path is a directory, and if not, print an error message and exit
the script to ensure invalid paths are caught early.

Makefile Outdated
INDEXER_DIR := $(TEMP_DIR)/injective-indexer

# Declare all phony targets at once
.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix .PHONY list: remove non-existent and add missing targets
The .PHONY declaration references update-all-docs (no matching target) and omits update-all-proto-related-files. Align them as follows:

-.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto
+.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-proto-related-files _update-errors _update-proto
+# Optional shorthand alias for the combined target
+.PHONY: all
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto
.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-proto-related-files _update-errors _update-proto
# Optional shorthand alias for the combined target
.PHONY: all
🧰 Tools
🪛 checkmake (0.2.2)

[warning] 18-18: Missing required phony target "all"

(minphony)


[warning] 18-18: Missing required phony target "clean"

(minphony)


[warning] 18-18: Missing required phony target "test"

(minphony)

🤖 Prompt for AI Agents
In the Makefile at line 18, the .PHONY declaration incorrectly includes the
target update-all-docs which does not exist, and it is missing the target
update-all-proto-related-files. Remove update-all-docs from the .PHONY list and
add update-all-proto-related-files to ensure the .PHONY targets accurately
reflect the actual targets defined in the Makefile.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🔭 Outside diff range comments (11)
source/includes/_tendermint.md (2)

170-176: Fix typo in field name default_nod_id.

The response-schema table lists default_nod_id, which is misspelled and breaks consistency with the actual API field (default_node_id).

-<tr ><td class="parameter-td td_text">default_nod_id</td><td class="type-td td_text">String</td><td class="description-td td_text">Node identifier</td></tr>
+<tr ><td class="parameter-td td_text">default_node_id</td><td class="type-td td_text">String</td><td class="description-td td_text">Node identifier</td></tr>

1598-1601: Correct misspelled height parameter in ABCIQuery request table.

The request-schema row is rendered as haight, which is confusing and misleading.

-<tr ><td class="parameter-td td_text">haight</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Block height</td><td class="required-td td_text">No</td></tr>
+<tr ><td class="parameter-td td_text">height</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Block height</td><td class="required-td td_text">No</td></tr>
source/includes/_derivativesrpc.md (1)

4700-4701: Broken JSON in inline examples

The sample JSON embeds a semicolon inside the object:

"decimals": 18;

This is invalid JSON and will break copy-paste testing.
Please drop the trailing semicolon.

Also applies to: 4821-4822

source/includes/_ibccorechannel.md (1)

548-566: Hard-coded mnemonic & password in docs

Including plaintext "12345678" and a private key exposes bad practice and might be copy-pasted into production scripts.
Replace with obvious placeholders (e.g. "<password>", "<private-key-hex>") to steer users away from committing secrets.

source/includes/_ibccoreclient.md (1)

1021-1024: Incorrect parameter name in ConsensusState request table

Row 1023 re-uses client_id instead of revision_height, which makes the table misleading.

-<tr ><td class="parameter-td td_text">client_id</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Consensus state revision height</td><td class="required-td td_text">Yes</td></tr>
+<tr ><td class="parameter-td td_text">revision_height</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Consensus state revision height</td><td class="required-td td_text">Yes</td></tr>

Please update the generated JSON-to-HTML table (or its source JSON) so the documentation reflects the actual gRPC request fields.

source/includes/_oraclerpc.md (1)

158-165: Wrong field listed in Oracle object description

The object does not expose oracle_base; it should expose oracle_type to match the examples and RPC payloads.

-|oracle_base|String|Oracle base currency|
+|oracle_type|String|Oracle provider (e.g. `bandibc`, `pyth`, `pricefeed`)|

Fixing this avoids confusing readers and keeps the docs consistent with the SDK structures.

source/includes/_wasmx.md (2)

145-152: Funds string constructed manually—risk of unsorted denoms.

MsgExecuteContractCompat requires the funds coins to be alphabetically sorted by denom.
Manually concatenating three segments makes this easy to get wrong in future edits. Consider:

- funds := fmt.Sprintf("%v%s,%v%s,%v%s", firstAmount, firstToken, …)
+ coins := []string{
+   fmt.Sprintf("%d%s", firstAmount, firstToken),
+   fmt.Sprintf("%d%s", secondAmount, secondToken),
+   fmt.Sprintf("%d%s", thirdAmount,  thirdToken),
+ }
+ sort.Strings(coins)
+ funds := strings.Join(coins, ",")

This guarantees correct ordering and scales if more coins are added.


194-200: Docs list funds as “No” but the example passes a non-empty value.

Either mark the parameter as “Optional (defaults to empty string)” or “Required when sending coins”. Ambiguity leads to integration errors.

source/includes/_insurance.md (1)

84-91: oracle_type type mismatch—code now passes a string but table still says Integer.

The SDK v1.16 API switched oracle_type from enum-int to string identifiers (“Band”, “Pyth”…).
Update the table:

-|oracle_type|Integer|The oracle provider|Yes|
+|oracle_type|String|Oracle provider (`Band`, `Pyth`, …)|Yes|
source/includes/_oracle.md (1)

332-334: Go example for MsgRelayProviderPrices is missing

The code block is empty. Include a Go snippet similar to the Python example or mark it as “TBD” until available to prevent broken docs.

source/includes/_permissions.md (1)

2024-2030: Wrong helper used – returns policy statuses instead of manager capabilities

FetchPermissionsPolicyStatuses will obviously return a list of PolicyStatus objects, not the PolicyManagerCapability objects the example is trying to demonstrate. Readers who copy-paste the snippet will silently get the wrong response type.

-	res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom)
+	res, err := chainClient.FetchPermissionsPolicyManagerCapabilities(ctx, denom)
♻️ Duplicate comments (8)
source/includes/_evm.md (5)

284-289: JSON example still missing sequence and account_number fields

The response table right below lists sequence and account_number, but the example block shows only cosmos_address. Align the example with the table (or adjust the table).


429-431: Missing JSON example for ValidatorAccount response

The code block is empty. Provide a representative sample or remove the block to avoid confusing readers.


729-733: Code section description copy-pasted from Storage

Update the description to state that the endpoint returns the contract code bytes at a given EVM address.


861-863: Missing example for Code response

The example block is empty despite code being defined in the table. Add a short hex-encoded sample or remove the empty block.


998-1000: Missing example for BaseFee response

Provide a sample JSON showing base_fee, or delete the empty block.

source/includes/_erc20.md (2)

271-276: Go example still calls the wrong query method (duplicate of earlier feedback).

FetchTokenPairByERC20Address expects an ERC-20 contract address, but the example passes the bank denom "usdt". Replace the call with FetchTokenPairByDenom (or supply a real contract address).


422-425: Go example still swaps denom/contract address (duplicate of earlier feedback).

Here the example builds an ERC-20 address but invokes FetchTokenPairByDenom. It should call FetchTokenPairByERC20Address.

Makefile (1)

87-89: .PHONY list still references a non-existent update-all-docs target

The same issue was flagged in the prior review but remains unresolved: update-all-docs has no corresponding rule, so keeping it in .PHONY is misleading and can mask typos elsewhere.
Either remove the entry or add the missing target stub.

-.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos clone-sdk-repos clean-sdk-repos update-all-docs _update-errors _update-proto update-all-proto-related-files
+.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos clone-sdk-repos clean-sdk-repos update-all-proto-related-files _update-errors _update-proto
+
+# Optional convenience aliases often expected by tooling
+.PHONY: all clean test
🧹 Nitpick comments (44)
source/includes/_insurancerpc.md (2)

32-34: Prefer asyncio.run() over legacy event-loop handling

asyncio.get_event_loop().run_until_complete(...) is considered legacy and may emit deprecation warnings in recent Python releases.
Use the higher-level helper for cleaner samples:

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

69-70: Hard-tab indent inside code block breaks markdownlint (MD010)

The literal tab in the third parameter of json.MarshalIndent is producing MD010 violations and uneven rendering in some markdown renderers.

-	str, _ := json.MarshalIndent(res, "", "\t")
+	str, _ := json.MarshalIndent(res, "", "  ")

Either switch to spaces (preferred) or add an explicit markdownlint ignore for this line.

source/includes/_txfees.md (1)

105-106: Tab indent triggers MD010

Same MD010 issue as in the insurance doc – consider replacing the tab with two spaces to silence the linter and keep output consistent.

source/includes/_auctionsrpc.md (2)

34-36: Modern asyncio entry-point

For consistency with current best practice:

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

67-68: Replace hard tabs in json.MarshalIndent

All Go examples switched to "\t" which violates MD010 and renders as a very wide indent in GitHub flavoured markdown. Use " " or disable the rule explicitly.

Also applies to: 242-243, 580-581

source/includes/_ibccoreconnection.md (3)

25-38: Drop the unnecessary symbol_database ceremony

symbol_database.Default() is kept from older snippets but serves no purpose in these read-only query examples.
Removing the import and the extra call reduces noise:

-from google.protobuf import symbol_database
-...
-symbol_db = symbol_database.Default()

Also applies to: 243-256, 556-569


35-38: Use asyncio.run() for cleaner samples

Repeating the recommendation across snippets improves newcomer copy-paste experience.

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

Also applies to: 254-256, 566-569


111-112: Tab character in Go json.MarshalIndent causes markdown-lint noise

Switch indent char to two spaces or ignore the rule. Same rationale as other files.

Also applies to: 331-332, 642-643, 1180-1181

.github/workflows/deploy.yml (1)

20-23: Trailing whitespace sneaked in

Line 20 contains a single trailing space, flagged by yamllint.
Remove it to keep the workflow lint-clean.

-      
+
source/includes/_metarpc.md (2)

26-32: Modern asyncio entry-point

Using the low-level event-loop API is discouraged since Python 3.7+.
A minimal, more readable change:

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

No functional change, cleans up loop handling.


68-69: Hard tabs inside Markdown trigger MD010

markdownlint flags these lines.
Either:

  1. Add a rule exemption at the top of the file
    <!-- markdownlint-disable MD010 -->
  2. Replace leading tabs in the Go example with 4 spaces.

Purely cosmetic, but keeps the pipeline green.

source/includes/_portfoliorpc.md (2)

25-31: Prefer asyncio.run for simpler event-loop handling

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

Keeps examples idiomatic and future-proof.


68-69: MD010: hard-tabs in Go snippet

Same lint warning as in _metarpc.md; either disable the rule for code blocks or replace the indent string with spaces.

source/includes/_accountsrpc.md (2)

14-34: Prefer asyncio.run() and make json.dumps robust

Across every Python example the pattern

asyncio.get_event_loop().run_until_complete(main())

is repeated along with

print(json.dumps(result, indent=2))
  1. asyncio.get_event_loop() is considered legacy since Python 3.7.
    Replace with the simpler, more readable:
-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())
  1. Several SDK responses may contain Decimal, datetime, or bytes values
    that are not JSON-serialisable, causing a TypeError. Future-proof by
    delegating unknown types to str:
-print(json.dumps(result, indent=2))
+print(json.dumps(result, indent=2, default=str))

These two small tweaks improve compatibility and readability without changing
the tutorial flow.

Also applies to: 113-145, 333-354, 464-485, 625-649, 733-760, 926-955, 1110-1130, 1317-1338


37-66: Hard-tabs in Go snippets violate MD010 — swap for spaces or disable rule

json.MarshalIndent(res, "", "\t") uses a tab character for indentation.
markdownlint (MD010) flags hard tabs inside fenced code blocks, generating
noise in CI.

Two easy fixes:

- str, _ := json.MarshalIndent(res, "", "\t")
+ str, _ := json.MarshalIndent(res, "", "  ")

or, if you really want tab-indentation, add a rule override to the snippet:

<!-- markdownlint-disable MD010 -->
```go
...
```
<!-- markdownlint-enable MD010 -->

Either approach eliminates the linter warnings while keeping the docs
functionally identical.

Also applies to: 148-192, 357-388, 488-518, 653-693, 781-823, 959-996, 1133-1164, 1341-1380

source/includes/_tendermint.md (1)

54-57: Resolve markdownlint MD010 hard-tab violations.

markdownlint-cli2 flags multiple lines with hard tabs.
Either convert tabs to spaces or add a repo-wide rule to ignore MD010. This keeps CI green and preserves formatting consistency.

Also applies to: 87-87, 104-104, 276-276, 307-307, 324-324, 399-400, 431-431, 448-448, 806-806, 837-837, 855-855, 1242-1242, 1273-1273, 1435-1435, 1466-1466

source/includes/_derivativesrpc.md (2)

14-31: Docs contain hard tabs – breaks markdownlint & some renderers

The inserted Go blocks use tab characters for indentation (\t).
markdownlint (MD010) is already flagging these lines and some site generators render tabs with wide spacing, hurting readability.

Two options:

  1. Replace tabs with four spaces inside the fenced blocks:
-	func main() {
+    func main() {
  1. Keep tabs in the source files but add
    <!-- markdownlint-disable MD010 --> before, and
    <!-- markdownlint-enable MD010 --> after each Go block.

Either way will silence CI noise and give uniform rendering.

Also applies to: 246-264, 559-602, 832-860, 1434-1456, 2163-2195, 2706-2729, 3021-3039


3472-3521: Snapshot helper misses awaitable cancellation handling

load_orderbook_snapshot awaits client.fetch_derivative_orderbooks_v2, but if the task is cancelled during the HTTP call the coroutine will leak the open connection.

Add asyncio.CancelledError handling:

try:
    res = await client.fetch_derivative_orderbooks_v2(...)
except asyncio.CancelledError:
    return

Minor, yet demonstrates best-practice in long-running documentation samples.

source/includes/_auction.md (2)

62-66: Ineffective update_gas_price path

gas_price is refreshed after the tx has already been sent (line 58).
Unless more messages follow, these lines are dead code and can be removed to avoid confusion.


137-144: Context timeout is good – propagate it further

Nice touch adding context.WithTimeout.
Ensure every network call (e.g. CurrentChainGasPrice) and BroadcastMsg receives this context; a few helper calls still use context.Background().

source/includes/_ibccorechannel.md (2)

21-33: Unused symbol_database import / variable

google.protobuf.symbol_database is imported only to create symbol_db = symbol_database.Default() which is never referenced.
Remove both to keep the example minimal.

-from google.protobuf import symbol_database
...
-    symbol_db = symbol_database.Default()

94-104: Gas-price configuration is irrelevant for read-only queries

NewChainClientV2 is initialised with OptionGasPrices, but every subsequent call is a query – no tx is signed.
Dropping the option (and the unnecessary keyring initialisation) simplifies the snippet and avoids misleading readers into thinking fees matter for queries.

source/includes/_oraclerpc.md (1)

60-70: Hard tabs violate Markdown linting rule MD010

Static analysis reports multiple MD010/no-hard-tabs violations caused by Go code blocks copied with tab indentation.
If you want to keep lint clean you can either:

  1. Configure .markdownlint.yaml to ignore fenced code blocks, or
  2. Pipe the snippets through expand -t4 during generation to convert them to spaces.

This is cosmetic but will silence CI noise.

Also applies to: 220-230, 260-270, 420-430

source/includes/_bank.md (2)

38-48: gas_price is fetched twice—drop the first fetch or the post-broadcast update.

For a short, single-shot example fetching the current gas price twice adds noise and gives the impression that the first value might already be stale before broadcasting, which is rarely the case. Eliminating the first call (and relying on the update after the broadcast) keeps the snippet leaner without losing instructional value.


176-182: Parameter table lists amount as “Integer” but the example uses 18-decimal chain units.

Readers unfamiliar with Injective’s base-unit convention may assume the value is 100 INJ instead of 0.0001 INJ. Explicitly call out that the integer represents base units (10¹⁸) or change the type/description to “int64 (wei-like base units)”.

source/includes/_insurance.md (2)

219-223: Clarify amount unit for underwriting.

Example converts a human value using Decimal * 1e6 before broadcasting, yet the parameter description omits the base-unit detail. Add “…in base units (e.g. 1 USDT = 1 000 000)” to prevent accidental 1 000 000× mistakes.


343-348: share_denom field name inconsistent with SDK (share_denomshareDenom).

SDK proto uses camelCase JSON tags. Keeping docs aligned avoids copy-paste errors when crafting requests with client libraries that expect exact field names.

source/includes/_explorerrpc.md (1)

1288-1304: Cancel / cleanup the streaming task in a finally block

If an exception is raised while the task is running, task.cancel() is never executed and the stream keeps the event-loop alive.

-    task = asyncio.get_event_loop().create_task(
+    task = asyncio.create_task(
         client.listen_txs_updates(
             callback=tx_event_processor,
             on_end_callback=stream_closed_processor,
             on_status_callback=stream_error_processor,
         )
     )
-    await asyncio.sleep(delay=60)
-    task.cancel()
+    try:
+        await asyncio.sleep(60)
+    finally:
+        task.cancel()
+        with contextlib.suppress(asyncio.CancelledError):
+            await task

Using try/finally guarantees the stream is closed even on interruption (e.g., Ctrl-C), and suppressing the CancelledError avoids noisy stack traces in examples.

source/includes/_evm.md (2)

440-444: Incorrect section description for Balance

The sentence “Queries an Ethereum account's from a validator consensus Address” is copy-pasted and inaccurate. It should describe that this endpoint queries the EVM balance of an Ethereum address.

-Queries an Ethereum account's from a validator consensus Address
+Queries the EVM balance of an Ethereum address

585-587: Storage section description is wrong

“Queries the balance of all coins for a single account” belongs to the Bank AllBalances endpoint, not EVM storage. Replace with a description that explains it fetches a storage slot value.

source/includes/_chainstream.md (2)

70-90: Gracefully await cancelled task to suppress RuntimeWarning.

task.cancel() is issued but the coroutine is never awaited; this can emit an unhandled CancelledError and leave the gRPC channel open.

     task.cancel()
-    # allow main to exit immediately
+    try:
+        await task
+    except asyncio.CancelledError:
+        pass  # expected on graceful shutdown

179-199: Provide a cancellable context to avoid an unbounded blocking loop.

The Go sample runs indefinitely with context.Background(); users must kill the process manually. Wrapping the call in a context with cancel/timeout makes the example safer and mirrors the Python snippet’s 60 s lifetime.

-	ctx := context.Background()
+	ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
+	defer cancel()
source/includes/_authz.md (2)

41-46: Retain gas-price precision – avoid lossy int() down-cast.

Casting the chain-gas price to int throws away decimal precision and may under-pay fees on low-denom testnets. Use math.ceil or Decimal instead of truncation.

-    gas_price = int(gas_price * 1.1)
+    from math import ceil
+    gas_price = ceil(gas_price * 1.1)

908-915: Inconsistent msg_type_url between language examples.

The Go Grants query uses a v1beta1 URL while the Python snippet (l 835-837) uses v2. Align them to prevent confusion.

-	msg_type_url := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"
+	msg_type_url := "/injective.exchange.v2.MsgCreateSpotLimitOrder"
source/includes/_erc20.md (3)

143-145: Empty “Response Example” block — either populate or remove.

An empty JSON block adds noise and breaks the reading flow. Provide a minimal realistic response or omit the example entirely.


290-295: Multiple placeholder response blocks left empty.

These empty blocks repeat across the file (TokenPairByDenom, TokenPairByERC20Address, MsgCreateTokenPair, MsgDeleteTokenPair). Fill them with representative payloads or delete them to avoid confusing readers.

Also applies to: 440-445, 653-655, 871-877


60-135: Hard tabs trigger MD010; convert to spaces to satisfy markdown-lint CI.

Most code snippets are pre-generated and use tabs. Either wrap them in ```go + go/`py` fences without additional indentation or run a tab-to-spaces pass to silence the linter.

Also applies to: 210-282, 359-433, 540-633, 770-859

source/includes/_permissions.md (2)

30-34: Modernise event-loop bootstrapping for Python examples

Using asyncio.get_event_loop().run_until_complete(main()) is discouraged from Python 3.10 onwards and fails outright under python -X dev. For single-shot scripts the idiomatic pattern is:

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Switching to asyncio.run keeps the examples future-proof and removes the need for the (soon-deprecated) global event loop getter.

Also applies to: 140-144, 660-664, 1180-1188


3146-3154: Precision loss when scaling gasPrice

The examples cast the gas price to float64, multiply, then cast back to int64:

gasPrice = int64(float64(gasPrice) * 1.1)

For gasPrice values above ~9 quadrillion wei this silently loses precision. Safer:

gasPrice = gasPrice * 11 / 10 // integer math, no rounding surprises

Or use math/big.Int if the SDK exposes gas in *big.Int.

Also applies to: 3888-3894

Makefile (2)

17-24: Temp directories for SDK clones are inconsistent with core repo layout

PYTHON_SDK_DIR := tmp-python-sdk and GO_SDK_DIR := tmp-go-sdk live in the project root, while other repos are grouped under /tmp/injective-docs-repos.
For cleanliness and easier bulk removal, consider housing all temp clones under the same $(TEMP_DIR) hierarchy.

-PYTHON_SDK_DIR := tmp-python-sdk
-GO_SDK_DIR := tmp-go-sdk
+PYTHON_SDK_DIR := $(TEMP_DIR)/sdk-python
+GO_SDK_DIR     := $(TEMP_DIR)/sdk-go

25-34: Minor: redundant @echo noise in clone/clean targets

Using both @echo and the -q flag keeps output minimal already; consider dropping the extra echoes or gate them behind a VERBOSE var. Not critical but helps CI logs stay concise.

source/includes/_wasm.md (3)

1741-1744: Avoid silent rounding down of gas price

Casting to int truncates the value and may under-price the tx. Use math.ceil (or keep it as decimal.Decimal) to round up instead:

-    gas_price = int(gas_price * 1.1)
+    import math
+    gas_price = math.ceil(gas_price * 1.1)

1745-1752: Minor: unnecessary re-construction of PrivateKey

MsgBroadcasterWithPk.new_using_gas_heuristics already builds the internal wallet from private_key. Constructing priv_key, pub_key, and address solely for display purposes is fine, but if they are unused elsewhere the block could be dropped to keep the snippet tight.


1779-1783: Second gas-price fetch is redundant

MsgBroadcasterWithPk is created only a few lines earlier with a freshly fetched gas price; updating it again without any intervening delay adds noise and doesn’t improve reliability. Consider removing lines 1779-1783.

Comment on lines 38 to +42
refresh-examples:
@$(MAKE) clone-sdk-repos
markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md
@$(MAKE) clean-sdk-repos

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

refresh-examples leaves temp SDK repos behind on failure

If markdown-autodocs exits non-zero, the subsequent clean-sdk-repos line is never reached, polluting the working tree. Wrap the call or use a trap to guarantee cleanup.

-refresh-examples:
-	@$(MAKE) clone-sdk-repos
-	markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md
-	@$(MAKE) clean-sdk-repos
+refresh-examples:
+	@$(MAKE) clone-sdk-repos
+	@set -e; \
+	  markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md; \
+	  STATUS=$$?; \
+	  $(MAKE) clean-sdk-repos; \
+	  exit $$STATUS

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In the Makefile around lines 38 to 42, the refresh-examples target runs
markdown-autodocs but if it fails, clean-sdk-repos is not executed, leaving
temporary SDK repos behind. Modify the target to ensure clean-sdk-repos runs
regardless of markdown-autodocs success by using a shell construct like 'set -e;
...; clean-sdk-repos' with a trap or by chaining commands with '|| true' and a
final call to clean-sdk-repos to guarantee cleanup even on failure.

Comment on lines 28 to 31
dotenv.load_dotenv()
configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY")
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")

# select network: local, testnet, mainnet
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Guard against missing INJECTIVE_PRIVATE_KEY

os.getenv may return None, causing PrivateKey.from_hex (line 50) to raise an exception. Fail fast with an explicit check and user-friendly error.

-    private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+    private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+    if not private_key_in_hexa:
+        raise RuntimeError("Environment variable INJECTIVE_PRIVATE_KEY is not set")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
dotenv.load_dotenv()
configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY")
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
# select network: local, testnet, mainnet
dotenv.load_dotenv()
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
if not private_key_in_hexa:
raise RuntimeError("Environment variable INJECTIVE_PRIVATE_KEY is not set")
# select network: local, testnet, mainnet
🤖 Prompt for AI Agents
In source/includes/_auction.md around lines 28 to 31, the environment variable
INJECTIVE_PRIVATE_KEY is fetched without checking if it is None, which can cause
an exception later. Add an explicit check after loading the environment variable
to verify that private_key_in_hexa is not None, and if it is, raise a clear and
user-friendly error message to fail fast and inform the user about the missing
key.

Comment on lines +42 to +50
message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics(
network=network,
private_key=private_key_in_hexa,
gas_price=gas_price,
client=client,
composer=composer,
)

priv_key = PrivateKey.from_hex(private_key_in_hexa)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Risk of stale gas price in long-lived broadcaster

MsgBroadcasterWithPk.new_using_gas_heuristics bakes the gas_price into the instance once.
If the script stays alive and you broadcast multiple txs, the price will drift.
Consider pulling await client.current_chain_gas_price() inside broadcast() (or at least before every call) instead of a one-time snapshot.

🤖 Prompt for AI Agents
In source/includes/_auction.md around lines 42 to 50, the MsgBroadcasterWithPk
instance is created with a fixed gas_price, which can become stale for
long-lived broadcasters sending multiple transactions. To fix this, remove the
gas_price parameter from the constructor and instead fetch the current gas price
by calling await client.current_chain_gas_price() inside the broadcast() method
or immediately before each transaction broadcast, ensuring the gas price is
always up to date.

Comment on lines 720 to 727
grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"
msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"

msg := &authztypes.MsgRevoke{
msg := authztypes.MsgRevoke{
Granter: senderAddress.String(),
Grantee: grantee,
MsgTypeUrl: msgType,
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Message type still references deprecated v1beta1 namespace.

The surrounding docs migrate to injective.exchange.v2, but the Go MsgRevoke example keeps the old path, which will fail on 1.16 chains.

-	msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"
+	msgType := "/injective.exchange.v2.MsgCreateSpotLimitOrder"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"
msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"
msg := &authztypes.MsgRevoke{
msg := authztypes.MsgRevoke{
Granter: senderAddress.String(),
Grantee: grantee,
MsgTypeUrl: msgType,
}
// before
grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"
- msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"
+ msgType := "/injective.exchange.v2.MsgCreateSpotLimitOrder"
msg := authztypes.MsgRevoke{
Granter: senderAddress.String(),
Grantee: grantee,
MsgTypeUrl: msgType,
}
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

720-720: Hard tabs
Column: 1

(MD010, no-hard-tabs)


721-721: Hard tabs
Column: 1

(MD010, no-hard-tabs)


723-723: Hard tabs
Column: 1

(MD010, no-hard-tabs)


724-724: Hard tabs
Column: 1

(MD010, no-hard-tabs)


725-725: Hard tabs
Column: 1

(MD010, no-hard-tabs)


726-726: Hard tabs
Column: 1

(MD010, no-hard-tabs)


727-727: Hard tabs
Column: 1

(MD010, no-hard-tabs)

🤖 Prompt for AI Agents
In source/includes/_authz.md around lines 720 to 727, the MsgTypeUrl in the
MsgRevoke example uses the deprecated "injective.exchange.v1beta1" namespace.
Update the MsgTypeUrl string to use the new "injective.exchange.v2" namespace to
align with the surrounding documentation and ensure compatibility with 1.16
chains.

Comment on lines 24 to 35
async def main() -> None:
# select network: local, testnet, mainnet
network = Network.testnet()
client = AsyncClient(network)
client = IndexerClient(network)
market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"
market = await client.fetch_derivative_market(market_id=market_id)
print(market)
print(json.dumps(market, indent=2))


if __name__ == "__main__":
asyncio.get_event_loop().run_until_complete(main())
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Prefer asyncio.run over the legacy event-loop plumbing

Across all Python snippets you keep the historical pattern:

if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(main())

asyncio.get_event_loop() is deprecated since Python 3.10 and will be removed in 3.14.
Switching to asyncio.run(main()):

-if __name__ == "__main__":
-    asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+    asyncio.run(main())

simplifies the code, is future-proof, and avoids subtle bugs around mixed event loops.
Update all affected examples for consistency.

Also applies to: 256-268, 1188-1219, 2165-2199

🤖 Prompt for AI Agents
In source/includes/_derivativesrpc.md around lines 24 to 35, replace the
deprecated asyncio event loop usage with the modern approach by changing the
code from using asyncio.get_event_loop().run_until_complete(main()) to simply
asyncio.run(main()). This update simplifies the code, ensures future
compatibility, and avoids issues with event loop management. Apply this change
consistently to all similar examples mentioned.

Comment on lines 24 to +31


async def main() -> None:
# select network: local, testnet, mainnet
network = Network.testnet()
client = AsyncClient(network)
composer = Composer(network=network.string())
client = IndexerClient(network=network)
composer = Composer(network=network)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Use async with to ensure the IndexerClient connection is closed cleanly

IndexerClient opens an internal aiohttp session.
Creating it directly and letting the program exit may leave an open connector, producing “Unclosed client session” warnings in longer-running apps or test suites.

-    client = IndexerClient(network=network)
+    async with IndexerClient(network=network) as client:
+        composer = Composer(network=network)
+        ...
+        # move the rest of the function inside this block
-    composer = Composer(network=network)

This pattern is repeated in most Python snippets in this file (AccountTxs.py, Blocks.py, Block.py, TxsRequest.py, etc.).
Wrapping the client in a context manager protects future users who copy/paste these examples.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
async def main() -> None:
# select network: local, testnet, mainnet
network = Network.testnet()
client = AsyncClient(network)
composer = Composer(network=network.string())
client = IndexerClient(network=network)
composer = Composer(network=network)
async def main() -> None:
# select network: local, testnet, mainnet
network = Network.testnet()
async with IndexerClient(network=network) as client:
composer = Composer(network=network)
# move the rest of the function inside this block
🤖 Prompt for AI Agents
In source/includes/_explorerrpc.md around lines 24 to 31, the IndexerClient is
instantiated without using an async context manager, which can leave the aiohttp
session open and cause warnings. Modify the code to create the IndexerClient
using an "async with" statement to ensure the client connection is properly
closed after use. Apply this pattern consistently to all similar client
instantiations in this file to prevent resource leaks.

Comment on lines +1731 to 1734
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")

# select network: local, testnet, mainnet
network = Network.testnet()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add a safety check for the private key

os.getenv("INJECTIVE_PRIVATE_KEY") may return None, which will later raise a less-helpful error inside PrivateKey.from_hex. Fail fast with a clear message:

-    private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+    private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+    if not private_key_in_hexa:
+        raise ValueError("Environment variable INJECTIVE_PRIVATE_KEY is not set or empty.")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
# select network: local, testnet, mainnet
network = Network.testnet()
private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
if not private_key_in_hexa:
raise ValueError("Environment variable INJECTIVE_PRIVATE_KEY is not set or empty.")
# select network: local, testnet, mainnet
network = Network.testnet()
🤖 Prompt for AI Agents
In source/includes/_wasm.md around lines 1731 to 1734, add a check right after
retrieving the private key from the environment variable to verify it is not
None. If it is None, raise an explicit error with a clear message indicating
that the INJECTIVE_PRIVATE_KEY environment variable is missing. This will ensure
the program fails fast with a helpful error instead of a less-clear failure
later in PrivateKey.from_hex.

@aarmoa aarmoa merged commit f165903 into main Jul 29, 2025
9 checks passed
@aarmoa aarmoa deleted the feat/chain_upgrade_v1_16 branch July 29, 2025 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants